脚本有两个具有不同PID的运行进程(总是相差4)

时间:2013-06-26 21:46:31

标签: linux shell

我有一个调用其他脚本的ksh脚本。初始脚本只调用第二个脚本。但是,如果我执行“ps axwww | grep full_script_name | grep -v grep”,它会显示第二个脚本的2个实例,两个都具有不同的PID。并且PID总是相互关闭4个数字(例如22089和22093)。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

首先,它不会总是4关闭,因为它最终会遇到一些仍然分配的PID。但这可能就是这种情况,或者至少接近它:

  • 开始script.ksh - 获取PID 42
  • script.ksh调用外部程序,获取PID 43,然后退出并将控制权返回给脚本
  • script.ksh调用第二个外部程序,获取PID 44
  • script.ksh调用第三个外部程序,获得PID 45
  • script.ksh调用child-script.ksh,获取PID 46,并在您运行ps
  • 时挂起

“外部程序”很多 - 从lsawksedperlsort ......