![当 CENTOS 7 中 PID 不断变化时如何终止进程(httpd)](https://linux22.com/image/660185/%E5%BD%93%20CENTOS%207%20%E4%B8%AD%20PID%20%E4%B8%8D%E6%96%AD%E5%8F%98%E5%8C%96%E6%97%B6%E5%A6%82%E4%BD%95%E7%BB%88%E6%AD%A2%E8%BF%9B%E7%A8%8B%EF%BC%88httpd%EF%BC%89.png)
当我尝试使用以下方法重新启动 httpd 服务时systemctl restart httpd
检查状态后,我发现该进程已停止,另一个进程正在运行。因此我使用以下命令将其删除yum erase httpd
为了谨慎起见,我检查了该进程是否仍在运行 ps aux | grep httpd#
,结果发现它确实在运行,但这次 PID 不同。经过后续查询后,PID 不断变化。如果我尝试使用任何 PID 终止进程,它会说NO Such Process
查看截图:
因此问题是,我该如何停止此过程,以便可以从头开始安装服务并对其进行配置?
答案1
你必须明白,当你grep httpd
不只是恢复任何 Apache 进程时但 grep 进程也是如此. 你会看到你自己的命令被反射回来。
# ps ax | grep httpd
1818 ? S 0:53 /usr/sbin/httpd
38729 ? S 4:38 /usr/sbin/httpd
38730 ? S 4:49 /usr/sbin/httpd
54915 pts/0 S+ 0:00 grep httpd
答案2
尝试:
find / -name "httpd.pid"
然后删除 pid 文件(如果存在)。
另外,以防万一:
systemctl stop httpd
systemctl disable httpd
Machavity 也是对的,每当你从 ps 的输出中 grep 时,你也会看到你的 grep 命令。这是你会习惯的事情。
答案3
另一种方法是,您可以killall httpd
终止所有名为 httpd 的进程。