给定其pid,检查进程是否存在

给定其pid,检查进程是否存在,第1张

给定其pid,检查进程是否存在

发出信号作为

kill(2)
系统调用
0
。如果调用成功,则表示存在具有此pid的进程。

如果调用失败并

errno
设置为
ESRCH
,则不存在具有此类pid的进程。

引用POSIX标准:

如果sig为0(空信号),则执行错误检查,但实际上未发送任何信号。空信号可用于检查pid的有效性。

请注意,您在竞争条件下并不安全:目标进程可能已退出,并且与此同时已启动了另一个具有相同pid的进程。否则,检查后该过程可能很快退出,您可以根据过时的信息做出决定。

仅当给定的pid是子进程(

fork
从当前进程开始)时,才可以使用
waitpid(2)
WNOHANG
选项,或尝试捕获
SIGCHLD
信号。这些在种族条件下是安全的,但仅与子进程有关。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4981934.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存