服务已停止,但系统中仍有进程存在

服务已停止,但系统中仍有进程存在

如果有人删除 /var/lock/subsys/httpd 文件,该如何解决?

答案1

一般来说,你可以通过找到进程的 PID 并向其发送信号 15 来让其正常终止。尝试

www% ps auxww|grep http
apache     311  0.0  0.5  42932 22580 ?        S    Mar11   0:21 /usr/sbin/httpd
apache    2547  0.0  0.5  42768 22188 ?        S    Mar12   0:06 /usr/sbin/httpd
root      2669  0.0  0.2  28500 11228 ?        Ss   Feb15   0:00 /usr/sbin/httpd
[ and many more http processes ] 

你感兴趣的是父进程,也就是 root 拥有的进程。它的 PID 是第二列,在本例中是 2669,因此让它终止

% kill -15 2669

重复 ps 命令以确保它已消失。如果它不能正常消失,你可以用信号 9 强制它消失:

% kill -9 2669

某些 UNIX 上还有其他命令可以终止特定进程组或名称中带有特定文本块的所有进程,但您无法说明您使用的是哪种操作系统(尽管使用文件/var/lock可以清楚地表明它是某种 UNIX)。尝试一下,man killall您可能会发现哪种方法killall httpd对您来说更简单。

通常,您需要成为 root 或使用命令sudo才能向任意进程发送任意信号。

相关内容