Shell脚本 - 是否可以跳过挂起的进程而不将其发送到后台?

时间:2017-11-23 02:54:40

标签: bash shell

我正在编写一个shell脚本来设置我的环境,安装依赖项,初始化一个Web服务器,并在浏览器中启动样板文件。

我的问题是,当它到达初始化网络服务器的行时,它会挂起(应该这样)并且不会在下一行执行命令来打开浏览器。

我知道我可以使用&将其发送到后台,它仍会将其输出发送回终端,但这有点不方便,因为ctrl + c不再有效杀死这个过程,我必须找到并杀死它以消除它。

我打开浏览器后尝试使用fg命令,希望它会将进程发送回前台,但是我收到以下错误:fg: no job control

在后台抛出进程是告诉脚本的唯一方法"运行下一行而不等待当前命令完成执行"?

1 个答案:

答案 0 :(得分:0)

尝试类似:

webserver &
ws=$!
browser 
kill $ws

以上是伪代码,但这个想法应该是明确的。在后台运行服务器,将其 PID 保存到$ws,然后运行浏览器,当它退出时,kill服务器。