我想一个接一个地运行一系列unix命令。如果这些命令中的任何一个因任何原因而死亡,则后续命令应该继续运行。
例如,我有3个命令叫做“setup”,“long-running-job”和“teardown”。如果“long-running-job”以任何退出代码结束,或者意外死亡,我想确保“teardown”在任何情况下运行。
简单地用分号连接所有命令似乎不起作用。我尝试在macOS终端中运行touch test.txt; ping localhost; rm test.txt
,在运行时关闭终端选项卡,发现“test.text”没有被删除。
答案 0 :(得分:0)
如果您想确保即使您的交互式窗口关闭,您的命令仍然继续,并且您的所有命令按照您指定的顺序依次发生,请使用此答案中的方法:https://unix.stackexchange.com/a/47231
基本上是您问题中的命令行
nohup sh -c 'touch test.txt; ping localhost; rm test.txt'
这意味着关闭终端发送的挂起信号将被忽略。
答案 1 :(得分:-1)
你试过GNU parallel吗?似乎是满足您需求的理想工具。
<?php
if(try to catch submit button's post value here, to see form is submitted)
{
?>
<script>
//do javascript tasks here
</script>
<?php
//do php tasks here
}
?>
Parallel提供了大量选项来控制暂停,失败,跳转,重试等。有关示例,请参阅手册和教程。