按照设置
START-STOP-守护程序:
do_start
start-stop-daemon -S -m -p $PIDFILE --name myapp --exec /opt/myapp
do_stop
start-stop-daemon -K -R TERM/30/KILL/5 -p $PIDFILE --name myapp
我开始的脚本看起来像那样:
java -jar ./myapp.jar
所以当我启动守护进程时,一切正常,PIDFILE就会生成。 ps aux | grep myapp给了我2个输出,一个用于守护进程,一个用于java,作为子级。如果我确实想要停止它,只有守护进程被停止,java进程将继续从控制台分离运行。
当我停止守护进程时,如何更改守护进程/脚本以将术语定义为java应用程序?
答案 0 :(得分:1)
这不起作用的原因是你真的只是停止/opt/myapp
当被杀死时不会自动杀死它的子进程(java进程)。要么手动在脚本中执行此操作(这很棘手),要么让start-stop-daemon直接启动java。它应该像这样懒散
start-stop-daemon -S -m -p $PIDFILE --name myapp --exec java -- -jar ./myapp.jar