我在Linux中有两个程序(例如shell脚本):
NeverEnding.sh
AllwaysEnds.sh
第一个永远不会停止,所以我想在背景中运行它。
第二个确实停止没有问题。
我想制作一个 Linux shell脚本,将它们都称为,但是当第二个时,会自动停止(例如,杀死)第一个完成即可。
如果需要,允许使用特定的命令行工具。
答案 0 :(得分:5)
您可以使用&
将第一个发送到后台并通过$!
获取它的PID。然后在第二个完成后,您可以杀死第一个:
#!/bin/bash
NeverEnding.sh &
pid=$!
AllwaysEnds.sh
kill $pid
您实际上不需要将pid保存在变量中,因为$!
仅在您启动后台进程时得到更新,它只是让它更容易阅读。