返回后台进程的值

Ani*_*udh 6 unix shell background return-value

我需要根据后台进程的返回值采取一些操作,即它是否首先终止.

具体来说:在理想的操作中,我作为后台进程运行的服务器将永远运行.在这种情况下保持它在后台是有道理的,因为我希望我的shell脚本在产生服务器后做其他事情.但是如果服务器异常终止,我想最好使用服务器的退出返回值来决定是否杀死我的主脚本.如果那是不可能的,我至少想要中止主脚本而不是用失败的服务器运行它.

我正在寻找一些针对shell脚本的异步回调的东西.一种解决方案是生成一个监视进程,定期检查服务器是否发生故障.我希望在主shell脚本本身内没有它.

djh*_*987 -2

您可以将后台进程嵌套在脚本中。例如,如果您希望发送到后台的进程名为 foo:

#!/bin/sh

foo

if [ $? ]
then 
    # do something here if process failed
fi
Run Code Online (Sandbox Code Playgroud)

然后只需在后台运行上面的脚本而不是foo. 如果你需要关闭它,你可以杀死它,但否则只要foo继续运行它就永远不会终止,如果 foo 死了,你可以根据它的错误代码做任何你想做的事情。