Я використовую це визначення для systemd
роботи:
[Unit]
Description=Some job
[Service]
ExecStart=/usr/local/sbin/somejob
User=dlt
Type=forking
[Install]
WantedBy=multi-user.target
Сценарій викликається наступним чином (викликає просту процедуру, яка прослуховує сокет tcpip і додає вхід до файлу):
#!/bin/sh
cd /home/user/tmp/testout
nohup java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar </dev/null >/dev/null &
Після того як systemctl start somejob
процес показується як запущений, з init
його батьком:
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
Після виконання systemctl stop somejob
процесу більше не відображається (і порт закритий).
Тож все здається прекрасним і модним
Моє запитання: Чи прийнятне це рішення для запуску демона Java з systemd
, або є застереження, і, таким чином, інші більш стабільні чи безпечні способи досягти цього?