相关疑难解决方法(0)

获取后台进程的退出代码

我有一个命令CMD从我的主要bourne shell脚本调用,需要永远.

我想修改脚本如下:

  1. 并行运行命令CMD作为后台进程($ CMD&).
  2. 在主脚本中,每隔几秒就有一个循环来监视生成的命令.该循环还将一些消息回显到stdout,指示脚本的进度.
  3. 当生成的命令终止时退出循环.
  4. 捕获并报告生成进程的退出代码.

有人能指点我完成这个吗?

unix linux shell process

112
推荐指数
6
解决办法
13万
查看次数

Bash:等待超时

在Bash脚本中,我想做类似的事情:

app1 &
pidApp1=$!
app2 &
pidApp2=$1

timeout 60 wait $pidApp1 $pidApp2
kill -9 $pidApp1 $pidApp2
Run Code Online (Sandbox Code Playgroud)

即,在后台启动两个应用程序,并给他们60秒完成他们的工作.然后,如果他们没有在那段时间内完成,就杀了他们.

不幸的是,上面的代码不起作用,因为它timeout是一个可执行文件,而它wait是一个shell命令.我尝试将其更改为:

timeout 60 bash -c wait $pidApp1 $pidApp2
Run Code Online (Sandbox Code Playgroud)

但是这仍然不起作用,因为wait只能在同一个shell中启动的PID上调用.

有任何想法吗?

linux bash shell

45
推荐指数
3
解决办法
4万
查看次数

标签 统计

linux ×2

shell ×2

bash ×1

process ×1

unix ×1