Python 父进程停止后,子进程仍处于活动状态
我编写了一个python守护进程。在我停止它之后,我在内存中看到它的子进程仍然处于活动状态,并且具有pid=1的父进程。在停止守护进程时,我应该如何杀死这些子进程 我不知道等价的python调用,但在C中,接受的策略是在子pid上使用WNOHANG选项执行waitpid/wait(3) 父进程id设置为1=>init进程,因为父进程已死亡并使子进程成为孤立进程 这方面的c代码如下Python 父进程停止后,子进程仍处于活动状态,python,Python,我编写了一个python守护进程。在我停止它之后,我在内存中看到它的子进程仍然处于活动状态,并且具有pid=1的父进程。在停止守护进程时,我应该如何杀死这些子进程 我不知道等价的python调用,但在C中,接受的策略是在子pid上使用WNOHANG选项执行waitpid/wait(3) 父进程id设置为1=>init进程,因为父进程已死亡并使子进程成为孤立进程 这方面的c代码如下 #include <sys/wait.h> /* pid_t wait(int *stat_loc);
#include <sys/wait.h>
/*
pid_t wait(int *stat_loc);
*/
void makeOrphanPidExit(pid_t pid)
{
int stat_loc = 0;
waitpid(pid, &stat_loc, WNOHANG);
}
#包括
/*
pid_t wait(int*stat_loc);
*/
void makeovernidExit(pid_t pid)
{
int stat_loc=0;
waitpid(pid和统计位置,WNOHANG);
}
调用makeorphandpidexit(orphandpid)
将使子进程摆脱孤立恐惧
有关等候的文件(3)—
更新:
根据我不知道等效的python调用是什么,但在C中,接受的策略是在子pid上使用WNOHANG选项执行waitpid/wait(3) 父进程id设置为1=>init进程,因为父进程已死亡并使子进程成为孤立进程 这方面的c代码如下
#include <sys/wait.h>
/*
pid_t wait(int *stat_loc);
*/
void makeOrphanPidExit(pid_t pid)
{
int stat_loc = 0;
waitpid(pid, &stat_loc, WNOHANG);
}
#包括
/*
pid_t wait(int*stat_loc);
*/
void makeovernidExit(pid_t pid)
{
int stat_loc=0;
waitpid(pid和统计位置,WNOHANG);
}
调用makeorphandpidexit(orphandpid)
将使子进程摆脱孤立恐惧
有关等候的文件(3)—
更新:
根据的规定,等效的python调用是`os.waitpid(pid,os.WNOHANG)如果您使用的是多处理库,则应在启动子流程之前将标志设置为True。这将使它在父进程退出时退出。如果使用多处理库,则应在启动子进程之前将该标志设置为True。这将使它在父进程退出时退出。ps-ef | grep“process cmd line”| grep-v grep | awk“{print$2}”将为您提供以“process cmd line”启动的任何进程的pid。通常,我们将每个进程的pid转储到一个pid文件中,并编写一个瘦包装器来获取生成的进程的pid。master.pid child_func1.pid child_func2.pid etc.ps-ef | grep“process cmd line”| grep-v grep | awk{print$2}将为您提供任何以“process cmd line”启动的进程的pid。通常,我们将每个进程的pid转储到一个pid文件中,并编写一个薄型包装器来获取生成的进程的pid。master.pid child\u func1.pid child\u func2.pid等。