Tôi đang sử dụng định nghĩa này cho một systemd
cô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 somejob
quá trình hiển thị là đang chạy, với init
tư 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 somejob
quy 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?