BASH:将程序的存在绑定到另一个程序

BASH:将程序的存在绑定到另一个程序

我想创建一个运行两个程序的脚本。这部分很简单,但有一个问题:如果第一个程序退出,我想终止第二个程序。我该怎么做?

编辑

我尝试在另一个程序退出后通过其 PID 终止该程序,但该程序是hamster-time-trackerPython 应用程序,它会立即退出,显然会产生另一个进程。我该如何解决这个问题?有没有办法让另一个 PID 产生?

编辑2

搞清楚了。我必须运行python /usr/bin/hamster-time-tracker而不是hamster-time-tracker,它才能继续运行。

答案1

#!/bin/bash

cmd-a &
a=${!}

cmd-b &
b=${!}

wait $a
kill $b

在测试这个时我使用yes ayes b作为命令。

答案2

等待bash 中的命令等待第一个应用程序终止,然后终止第二个应用程序。

由于等待会在不以 & 结尾的命令后自动插入,因此正确的顺序可以避免您陷入手动等待的麻烦:

A &
B          # waits
kill $!    # then kills A

相关内容