我正在为启动服务脚本编写停止例程:
do_stop()
{
rm -f $PIDFILE
pkill -f $DAEMON || return 1
return 0
}
问题在于pkill(与killall相同)也与表示脚本本身的进程匹配,并且它基本上会自行终止。如何解决?
您可以从结果中明确滤除当前的PID:
kill $(pgrep -f $DAEMON | grep -v ^$$\$)
要正确使用该-f
标志,请确保提供守护程序的整个路径,而不仅仅是子字符串。这样可以防止您杀死脚本(并消除对上面的需求grep
),也可以杀死所有恰好共享守护程序名称的其他系统进程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句