我有一個啓動後臺進程的腳本。在shell腳本中查殺背景過程
#!/bin/sh
./process1.sh &
./process2.sh &
我需要使用單獨的腳本來終止這些進程。 這裏是我做過什麼:
#!/bin/sh
# the kill.sh
pid=$(ps | grep './process1.sh' |grep -v grep| awk '{print $1}')
kill -9 $pid
提問時間:
當kill.sh被稱爲進程採空。但我收到消息
「sh:你需要指定要殺人的人」。 這是爲什麼?
在我使用描述的腳本終止進程之後,它不會立即停止。一段時間後,我在屏幕上看到輸出,就好像進程仍在運行一樣。任何想法爲什麼?
什麼可能是殺死進程的替代解決方案?
值得一提的是,我正在與busybox合作嗎?我的工具選擇有限。
任何幫助,將不勝感激。
當然,取決於你如何編寫這些腳本,但是你應該允許它們捕捉信號(執行kill時)並執行所需的操作來清理 - 或者優雅地關閉。 此外,只需在後臺啓動進程時將PID記錄爲/ tmp目錄中的臨時文件,不需要混淆'ps'命令。 – Anders