加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用&符号(&)在后台运行子进程时,运行bash脚本不会返回

发布时间:2020-12-15 18:23:28 所属栏目:安全 来源:网络整理
导读:我有一个脚本(让我们称之为parent.sh),它对运行 java进程的第二个脚本(child.sh)进行2次调用. child.sh脚本在后台运行,放置一个在parent.sh中的行尾.但是,当我运行parent.sh时,我需要按Ctrl C返回终端屏幕.这是什么原因?是否与child.sh进程在parent.sh进程
我有一个脚本(让我们称之为parent.sh),它对运行 java进程的第二个脚本(child.sh)进行2次调用. child.sh脚本在后台运行,放置一个&在parent.sh中的行尾.但是,当我运行parent.sh时,我需要按Ctrl C返回终端屏幕.这是什么原因?是否与child.sh进程在parent.sh进程下运行这一事实有关.所以parent.sh不会死,直到孩子们这样做?

parent.sh

#!/bin/bash
child.sh param1a param2a &
child.sh param1b param2b &
exit 0

child.sh

#!/bin/bash
java com.test.Main 
echo "Main Process Stopped" | mail -s "WARNING-Main Process is down." user@email.com

如您所见,我不想在后台运行java进程,因为我想在进程终止时发送邮件.从功能的角度来看,如上所述可以正常工作,但我想知道如何在执行parent.sh后让它返回终端.

我最终做的是将parent.sh更改为以下内容
#!/bin/bash
child.sh param1a param2a > startup.log &
child.sh param1b param2b > startup2.log &
exit 0

如果没有您对该问题的建议和根本原因分析,我不会找到这个解决方案.谢谢!

对我不准确的评论道歉. (没有输入,我从记忆中回答,我记得错了.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读