weixin_43975295 2019-12-13 13:45 采纳率: 100%
浏览 1537
已采纳

shell脚本调用另一个shell脚本问题

问题描述:
现在有两个shell脚本A和B,用A脚本去调用B脚本,B脚本中有一条将程序放到后台执行的语句。两脚本大体内容如下:
A脚本:
#!/bin/bash
source /etc/profile
source ~/.bash_profile
B

B脚本:
#!/bin/bash
source /etc/profile
source ~/.bash_profile
nohup command &

这时候执行A脚本,发现虽然成功调用了B脚本,并且看到了B脚本中的程序放到后台的回显,但是此时查看发现后台并没有command程序。
个人感觉可能是A脚本fork出子进程,然后B脚本的后台command程序是放在子进程中的,之后A脚本及其子进程退出,后台的程序也一并退出了。
其后我使用了source B来调用B脚本,以及在B脚本最后写入sleep命令,即程序放到后台后B脚本并不退出,但是同样的结果,还是发现command程序没有启动。
请问有没有大佬知道这种情况的原因和解决办法呢?需要这样做的原因是A脚本是一个监控脚本,发现异常以后,去调用执行B脚本,而B脚本是command程序的启动脚本。如果将nohup command &放入A脚本中去启动,而不是通过调用B脚本的方式启动command程序可以行,但是感觉管理混乱,并且想弄明白这个问题的原因。

  • 写回答

2条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 用MATLAB解决问题,需要代码
      • ¥45 关于C语言设计井字棋游戏问题的实现
      • ¥15 python定义一个学生类
      • ¥20 vuforia的Unity3D开发,模型附上特效后大量报错
      • ¥35 Python实现文本关键词提取
      • ¥20 如何使用c++语言完成实验仪器管理系统
      • ¥15 请问Unity使用Magica Cloth插件怎么调整散兵的帘子和振袖比较好?
      • ¥15 请问为什么原神模型导入Unity做动画默认姿势会站不直?
      • ¥15 ld: cannot open C:\Program: No such file or directory
      • ¥15 请问汏佬要怎么访问这种过滤了post和get的php内容?