Linux shell脚本:当第二个程序完成后,如何停止第一个程序?

时间:2014-03-30 22:52:11

标签: linux shell scripting

我在Linux中有两个程序(例如shell脚本):

NeverEnding.sh
AllwaysEnds.sh

第一个永远不会停止,所以我想在背景中运行它。
第二个确实停止没有问题。

我想制作一个 Linux shell脚本将它们都称为,但是当第二个时,会自动停止(例如,杀死)第一个完成即可。

如果需要,允许使用特定的命令行工具。

1 个答案:

答案 0 :(得分:5)

您可以使用&将第一个发送到后台并通过$!获取它的PID。然后在第二个完成后,您可以杀死第一个:

#!/bin/bash

NeverEnding.sh &
pid=$!

AllwaysEnds.sh

kill $pid

您实际上不需要将pid保存在变量中,因为$!仅在您启动后台进程时得到更新,它只是让它更容易阅读。