如果有人删除 /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
才能向任意进程发送任意信号。