shell脚本中用nohup启动3个进程,输入回车后会有一或两个进程被杀掉,是啥原因?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本中用nohup启动3个进程,输入回车后会有一或两个进程被杀掉,是啥原因?相关的知识,希望对你有一定的参考价值。

想写一个shell脚本,在脚本中执行另外三个脚本a、b、c,这三个脚本会启动三个进程,命令如下。
nohup ./a &
nohup ./b &
nohup ./c &
单个执行这三条命令时没有问题,但同时输入这三个命令时,就会有进程被杀掉。会出现【1】 Done nohup ./a
【2】- Exit 1 nohup ./b
之后a、b进程就没了。这是什么原因?

参考技术A 改写为:

( nohup ./a ) &
( nohup ./b ) &
( nohup ./c ) &
wait

说明:开启三个子shell在后台执行操作,( )表示开启子shell,
若不加圆括号直接这样写,则直接在父shell操作,可能造成逻辑错误,因为这个不是在命令行执行 的进程,
wait根据实际情况添加,表示等前面三个进程执行结束在进行下一步

以上是关于shell脚本中用nohup启动3个进程,输入回车后会有一或两个进程被杀掉,是啥原因?的主要内容,如果未能解决你的问题,请参考以下文章

nohup命令执行推出后进程退出

nohup命令的用法

CentOS7 开机启动脚本与命令后台运行

大数据常用shell脚本之fl脚本

容器中用shell 脚本启动如何优雅关闭

nohup 后台不挂断运行程序