我正在编写一个shell脚本来设置我的环境,安装依赖项,初始化一个Web服务器,并在浏览器中启动样板文件。
我的问题是,当它到达初始化网络服务器的行时,它会挂起(应该这样)并且不会在下一行执行命令来打开浏览器。
我知道我可以使用&
将其发送到后台,它仍会将其输出发送回终端,但这有点不方便,因为ctrl + c不再有效杀死这个过程,我必须找到并杀死它以消除它。
我打开浏览器后尝试使用fg
命令,希望它会将进程发送回前台,但是我收到以下错误:fg: no job control
在后台抛出进程是告诉脚本的唯一方法"运行下一行而不等待当前命令完成执行"?
答案 0 :(得分:0)
尝试类似:
webserver &
ws=$!
browser
kill $ws
以上是伪代码,但这个想法应该是明确的。在后台运行服务器,将其 PID 保存到$ws
,然后运行浏览器,当它退出时,kill
服务器。