如何使用不同的脚本停止运行脚本

时间:2014-09-09 06:26:18

标签: bash shell

我想编写一个脚本,在该脚本中我想停止运行脚本并运行不同的脚本。

实施例: 脚本1和脚本2在后台运行。 脚本3,其中我想停止脚本1和2并开始执行脚本4

3 个答案:

答案 0 :(得分:2)

可能这可能是一个解决方案:脚本1和脚本2将他们的PID写入文件,比如scripts.pid。 Script3读取此文件,检索PID值,发送kill -SIGINT $ SCRIPT1_PID $ SCRIPT2_PID并启动Script4。

答案 1 :(得分:2)

用于终止script1和script2尝试像这样

for i in `ps -ef | grep -w -E "script1|script2" | awk '{print $2}'`; do kill -9 $i; done

仅运行新脚本

sh script4

答案 2 :(得分:2)

script3

killall script1
killall script2
script4

由于这会按名称停止script1script2,因此请选择不寻常的名称。

请注意,最好使用默认信号SIGTERM终止进程。这允许进程执行清理,例如删除临时文件和释放资源。相比之下,SIGKILL9不允许清理并且可能会留下损坏的状态。