Linux获取通过execl脚本启动的程序的PID
Linux get pid of program launched via script with execl
我有一个代码,该代码启动了另一个程序作为子进程。
pid = execlp("path-to/program", "path-to/program", nullptr);
这使我返回了我启动的过程的PID,以便我可以访问它。现在,我们需要通过Shell脚本启动过程。这样:
#!/bin/bash
export LD_LIBRARY_PATH=/path-to/program
/path-to/program
#or:
wine /path-to/program.exe
c :
pid = execlp("/path-to/shelscript.sh", "/path-to/shellscript.sh", nullptr);
现在我致电Execl时,它将返回Shell的PID,而不是启动过程的PID。我可以检查程序的路径是否包含" .sh"并将PID递增,但这并不总是可行。有清洁剂吗?更可靠的方法?
如果在shell脚本中启动一个进程,则变量$!
包含刚刚创建的过程的pid。您可以例如使用Echo输出此内容,然后使用popen()
启动Shell脚本,然后从那里读取PID。
相关文章:
- 在程序和基于文本的游戏和C++内重新启动程序
- 在程序/基于文本的游戏/C++内重新启动程序
- 为什么使用 exec() 重新启动程序不能正常工作?
- 如何在 C++ 的 pacticular 目录中启动程序
- QProcess可以启动程序,但不能启动python(命令行)
- 在GDB中:在启动程序中以代码1退出.在GDB之外运行良好
- 从窗口启动程序时如何查看键盘修饰符?
- 视觉C++为什么我的文件在重新启动程序时被截断?
- 如何防止程序输出终止并重新启动程序而不会丢失数据
- 启动程序和libocci.so.11.1:无法打开共享对象文件:没有这样的文件或目录
- 无法启动程序
- 在QT中启动程序时如何创建列表或对象
- 在 CMAKE 中设置CMAKE_RUNTIME_OUTPUT_DIRECTORY后无法启动程序
- 我启动程序的方式上的不同行为
- 无法弄清楚如何为用户提供启动,停止和重新启动程序的所有选项?
- 无法启动程序.pocketsphinx.dll缺少错误
- 使用包含给定空格的路径启动程序
- 是否可以在异常(SEGFAULT)错误后自动重新启动程序
- 通过 PATH 环境启动程序.具有正确工作目录的变量
- C++启动程序而不打开控制台