我想编写一个脚本,在该脚本中我想停止运行脚本并运行不同的脚本。
实施例: 脚本1和脚本2在后台运行。 脚本3,其中我想停止脚本1和2并开始执行脚本4
答案 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
由于这会按名称停止script1
和script2
,因此请选择不寻常的名称。
请注意,最好使用默认信号SIGTERM
终止进程。这允许进程执行清理,例如删除临时文件和释放资源。相比之下,SIGKILL
或9
不允许清理并且可能会留下损坏的状态。