Mis*_*iev 2 process kill process-management
我正在寻找一种可靠的跨平台方式来检查具有特定 pid 的进程是否正在运行。出现了两种可能的解决方案:
kill -0 $PID
— 如果进程存在,退出状态为 0,否则为 1,但是对于需要额外权限才能杀死的 pid,它也会返回 1。ps a | grep "^\s*${PID}"
和类似的都是丑陋的。有没有办法拥有像#1 这样的东西,但没有所有者限制?
你能写一个小的C程序吗?该kill(2)
系统调用不会返回-1如果你的UID没有权限来发送信号给定的进程,但errno
被设置为EPERM
在这种情况下,相对于ESRCH
一个不存在的PID。我相当肯定您可以使它在 Solaris、HP-UX、Linux 和 *BSD 之间具有可移植性。您必须为每个平台编译它。
归档时间: |
|
查看次数: |
964 次 |
最近记录: |