Trên máy chủ CentOS7, tôi có một ngăn xếp ứng dụng được tạo bởi máy chủ web Tomcat và máy chủ MySQL DB, cả hai đều được cài đặt trên cùng một VM. Tôi muốn họ bắt đầu và dừng lại với nhau theo thứ tự này:
BẮT ĐẦU: MySQL -> Tomcat DỪNG: Tomcat -> MySQL
Đọc tài liệu của đơn vị systemd, tôi đã quản lý để bắt đầu chúng cùng với Requires=
chỉ thị, nhưng khi tôi dừng tomcat với systemctl thì dừng tomcat.service, MySQL tiếp tục chạy. Trên nhật ký hệ thống tôi nhận thấy rằng nó thậm chí không cố gắng ngăn chặn MySQL, vì vậy phải có điều gì đó không ổn với đơn vị systemd.
Đây là đơn vị của tôi:
# Tệp đơn vị Systemd cho tomcat [Đơn vị] Mô tả = Container ứng dụng web Apache Tomcat After = syslog.target network.target mysql.service Yêu cầu = mysql.service [Dịch vụ] Loại = rèn Môi trường = JAVA_HOME = / opt / jdk Môi trường = CATALINA_PID = / opt / tomcat / temp / tomcat.pid Môi trường = CATALINA_HOME = / opt / tomcat Môi trường = CATALINA_BASE = / opt / tomcat ExecStart = / opt / tomcat / bin / startup.sh ExecStop = / bin / kill -15 $ MAINPID Người dùng = tomcat Nhóm = tomcat [Tải về] WantedBy = multi-user.target