由于各种原因,我们的应用程序由 3 个进程组成,不能合并为一个进程。这些过程非常严格,因此将它们一起生成和杀死是有意义的。例如,如果其中任何一个死亡,整个系统将无法工作,因此杀死另外两个是有意义的。
这可以在 Linux 中完成吗?
总的来说我支持G-Man的回答。我想介绍一个在某些情况下可能就足够的快速解决方案。
令三个可执行文件为foo、bar和baz。假设:
foo、 1bar和 1 baz。而不是foo运行foo ; killall bar 2>/dev/null。
而不是bar运行bar ; killall baz 2>/dev/null。
而不是baz运行baz ; killall foo 2>/dev/null。
如果你想在后台运行foo,正确的语法如下:
{ foo ; killall bar 2>/dev/null ; } &
Run Code Online (Sandbox Code Playgroud)
bar与类似baz。这样,如果您愿意,您可以从单个 shell 运行它们。
该解决方案可扩展到任何合理数量的进程。killall当一个进程终止时,将触发菊花链。这最终将发挥鞭打金属杀死他们所有人。
请注意,在您确定该杀伤链已完成之前,不应启动一组新的进程。
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |