linux

时间:2016-01-12 18:56:36

标签: linux process embedded-linux archlinux

你好我在Linux中有两个进程说P1& P2和两者都是独立的可执行文件 在过程中" P1"我正在使用" system()"运行过程的功能" P2"。 流程" P2"运行6秒钟,然后调用"退出()" API(它自杀)。

我想知道如何获得流程" P2"在流程" P1"?

中终止通知

4 个答案:

答案 0 :(得分:1)

当P2执行时,P1将在system()中被阻止。 P2的终止将解除阻塞P1。 P1获取P2的退出代码作为系统的返回值。

答案 1 :(得分:0)

你做错了。

是的,运行system(),而不是在如此创建的进程上使用kill进行轮询,但是正确的事情是使用fork()和exec()从P1创建P2,这将使P1成为P2的父进程 - 这意味着当P2退出时,您将收到SIGCHLD信号。

答案 2 :(得分:0)

  

我想知道如何在进程“P1”中获取进程“P2”终止通知?

P1会在P2执行时锁定。

我建议您使用P1中的fork()exec()。这将使P1成为P2的主要流程。当P2完成执行后,它将解锁P1传递返回值。

答案 3 :(得分:-1)

这很简单 我刚刚发现“ int kill(pid_t pid,int signum)”将起作用。

此功能的详细信息可在以下位置找到 - http://www.gnu.org/software/libc/manual/html_node/Signaling-Another-Process.html