我有一个shell脚本,它生成一个java进程,我希望将其包装在一个包装器中以便与monit一起使用。
我已经尝试了
的monit推荐wrapper.sh /usr/sbin/cmd start
我在$$
当我这样做的时候,我看到2个进行了旋转。一个是包装器中的exec,另一个是我的java进程。
但是,/usr/sbin/cmd
的pid是/ usr / sbin包装器的pid而不是实际的java进程的pid。所以,如果我"停止"服务或杀死那个pid,然后java进程被孤立。
另一方面,如果我在前台运行void** const arr
然后杀死它,它会杀死子进程。
答案 0 :(得分:2)
在运行命令之前无法获取pid,但可以使用$!
。另外,我建议你使用nohup
。像
nohup $1 > /var/log/$name.stdout 2>&1 &
echo $! > /var/run/service.pid