Tôi đang sử dụng định nghĩa này cho một systemdcông việc:
[Unit]
Description=Some job
[Service]
ExecStart=/usr/local/sbin/somejob
User=dlt
Type=forking
[Install]
WantedBy=multi-user.target
Kịch bản được gọi là như sau (gọi một thói quen đơn giản nghe trên ổ cắm tcpip và nối thêm đầu vào vào một tệp):
#!/bin/sh
cd /home/user/tmp/testout
nohup java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar </dev/null >/dev/null &
Sau khi systemctl start somejobquá trình hiển thị là đang chạy, với inittư cách là cha mẹ của nó:
user@CANTANDO ~$ ps -u dlt eo pid,ppid,command
PID PPID COMMAND
8718 1 java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar
Sau khi thực hiện systemctl stop somejobquy trình không hiển thị nữa (và cổng bị đóng).
Vì vậy, mọi thứ có vẻ tốt và bảnh bao
Câu hỏi của tôi là: Đây có phải là một giải pháp chấp nhận được để chạy java daemon với systemd, hoặc có cảnh báo không, và do đó, các cách khác ổn định hơn hoặc an toàn hơn để đạt được điều này?