I'm using this definition for a
[Unit] Description=Some job [Service] ExecStart=/usr/local/sbin/somejob User=dlt Type=forking [Install] WantedBy=multi-user.target
The script is called is as follows (calling a simple routine that listens on a tcpip socket and appends the input to a file):
#!/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 process shows as running, with
init as its parent:
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 the process doesn't show anymore (and the port is closed).
So everything seems fine and dandy
My question is: Is this an acceptable solution for running a java daemon with
systemd, or are there caveats, and thus other more stable or secure ways to go about achieving this?