我已将我编写的程序转换为服务,并且我有一个bash脚本运行以启动实际程序,因为有些事情必须按特定顺序启动。 init.d脚本中的启动脚本(使用start-stop-daemon
调用)的内容如下所示:
./rfid_reader &
sleep 2
java ReaderClass &
这样可以正常工作,但是当我需要停止这个过程时,如何杀死它们呢?
我已经看过使用了pidfiles,我只是获取两个程序的PID,将它们写入文件,然后在关闭它们时杀死它们,或者我必须ps -ef | grep program
来得到他们的PID?
答案 0 :(得分:2)
我认为killall
不是一个好主意。您最好在某个文件中记录在后台启动的程序的PID
(例如PID_FILE
),然后kill $(<$PID_FILE)
来停止它。
请参阅this thread了解如何获取PID
之前启动的后台计划。
答案 1 :(得分:0)
假设您知道程序的名称,可以按如下方式终止它们:
killall -KILL program_name