如何处理停止我的服务?
我已经把一个程序写入了一个服务,并且我有一个bash脚本运行来启动实际的程序,因为有些东西必须以特定的顺序启动。启动脚本(从的init.d脚本调用start-stop-daemon
的内容是这样的:如何处理停止我的服务?
./rfid_reader &
sleep 2
java ReaderClass &
这工作得很好,但我怎样去杀死他们,当谈到时间停止进程 我”?有没有看过pidfiles,我只是得到这两个程序的PID,将它们写入一个文件,然后在关闭它们时关闭它们,还是必须要ps -ef | grep program
才能获得它们的PID?
我不认为killall
是一个很好的做法。您最好在某个文件(例如PID_FILE
)中记录在后台启动的程序的PID
,然后kill $(<$PID_FILE)
将其停止。
请参阅this thread了解如何获取上一次启动的背景程序PID
。
假设你知道你的程序的名称,你可以杀死他们如下:
killall -KILL program_name
'-KILL'?真?这是你在森林中的正常习惯吗? –
为了避免混淆,可能需要明确指出'program'是'program_name'。 –
是的,program_name也可以,因为Brydon最初声明 ps -ef | grep程序 为了一致性,我想重复一遍 – Frederic
'pid1 = $(pidof program_name)&& pid2 = $(pidof other_name)&& kill $ pid1 $ pid2'?或者只是'kill $(pidof program_name)$(pidof other_name)' –
这些工作,我认为有一个标准的方法,我猜这是标准方式 –
标准是调用相同的'/ etc/rc.d/initfile stop'你习惯了'/etc/rc.d/initfile start'这个守护进程(或'systemctl stop prog_name'来调用'systemd'世界中的停止服务) –