【发布时间】:2017-09-14 13:17:01
【问题描述】:
我的程序接收一个字符串(shell 脚本的路径)作为输入。现在我必须启动那个 shell 脚本并找出它的进程 ID。
我使用system() 函数来启动一个shell 脚本,然后使用popen() 和ps -aef | grep "ShellScript" 来获取它的PID。
有人建议我有更好的方法来做到这一点。如果多个脚本同时运行,我这样做的方式会给出错误的 PID。
在启动后获取给定脚本名称的 PID 的正确方法是什么?
【问题讨论】:
-
"如果同时运行多个脚本会给出错误的PID。"所以你必须处理多个PID?
-
也许用
fork()和exec...()替换system()是最简单的方法。但是:您目前如何实现目标?通常system()在脚本完成之前不会返回... -
为什么需要获取PID?你会用它做什么?
-
它为运行多个脚本提供的错误 PID。