杀死具体进程
执行了 systemctl stop httpd
来关闭 httpd
(Apache)服务,但仍然看到类似:
httpd (pid 1785910) already running
表示进程还在运行,说明 httpd
没有被完全停止。
✅ 解决步骤如下:
🔍 第一步:确认并查找 httpd
是否仍有残留进程
ps aux | grep httpd
示例输出:
root 1785910 0.0 0.2 123456 7890 ? Ss 12:34 0:00 /usr/sbin/httpd -DFOREGROUND
apache 1785911 0.0 0.1 123456 4567 ? S 12:34 0:00 /usr/sbin/httpd -DFOREGROUND
...
🧨 第二步:强制杀死所有 httpd 相关进程
sudo pkill httpd
或者使用 killall
:
sudo killall httpd
如果仍然存在僵尸进程,可以手动 kill:
sudo kill -9 1785910 1785911 ...
🔁 第三步:再次确认是否彻底关闭
ps aux | grep httpd
如果没有输出(或只有 grep 本身),说明服务已完全停止。
🧪 第四步:确认端口是否仍被占用(例如 80 端口)
sudo lsof -i :80
如果发现仍有服务监听 80 端口,你可以确认是哪个程序占用了:
sudo netstat -tulnp | grep :80
或者:
sudo ss -tulnp | grep :80
如你希望彻底禁用 httpd
,可以执行:
sudo systemctl disable httpd
sudo systemctl mask httpd
mask
会阻止任何方式启动它,包括依赖项。