![]() |
1
4
你提到你使用的是Linux。这不是最干净的解决方案,但是您可以在/proc中检查每个条目,并根据您要查找的内容检查cmdline中的进程名称。 |
![]() |
2
4
使用SysTLL Example code 编辑-它在Linux中可用 see here |
![]() |
3
2
procfs的读取非常便宜,很多人认为通过/proc进行迭代就像通过/proc进行迭代一样,实际上根本不是这样。 通过跳过任何低于1000的条目来节省一些时间,检查内核线程是没有意义的。所以,基本上……在opendir()之后,如果strToInt()认为条目是一个int,而该int大于或等于1000,则只需读取/proc/%d/stat。 尝试避免仅仅解析“exe”链接的冲动,因为这不会告诉您将接收信号的进程的状态。例如,如果目标处于“d”(磁盘休眠)状态,您将希望知道,因为如果d状态是永久性的,则信号不会立即传递,或者可能永远不会传递。 在大多数系统中,有70到120个过程需要检查,并且您通常会在到达终点之前找到目标的方法。 |
![]() |
4
2
你提到,“我能想到的一种方法是向那个进程发送一个套接字请求,并请求它的PID。”听起来你试图杀死的进程是你编写的一个程序。 如果是这样的话,canonical要做的就是在程序运行时将pid存储在一个文件中(通常在/var/run下,如果您有权访问它),并在程序退出时删除该文件。这样,检测程序是否正在运行就像
仔细研究上述代码的所有含义可能会教会您很多关于PID文件如何工作的知识。或者你可以要求更详细的解释。 |
![]() |
5
0
这对我来说似乎很管用。 不过,您可能希望给出进程的完整路径,以免杀死具有类似名称的进程。 其主要优点是您可以指定要发送的信号。
|
![]() |
6
0
为什么不将fcntl与f getown一起使用? |
![]() |
7
0
要完成@Gregorgers答案,只需检查pidof的实现
如您所见,它只搜索/proc目录。 |
![]() |
Arman · django m2m\u已更改不工作 7 年前 |
![]() |
Kev · Python中的信号频率滤波 7 年前 |
![]() |
Giorgi Cercvadze · 如何将暂停的进程设置为后台? 7 年前 |
![]() |
miXo · 如何使用整数除法降低采样率? 7 年前 |