Linux - 安全地杀死 apache 拥有的一些进程
我有一堆 apache 拥有的进程,它们运行了好几天,因为它们被卡住了。
apache 11173 0.1 0.0 228248 27744 ? Ss Sep27 3:58 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 12609 0.1 0.0 228244 27744 ? Ss Sep18 19:30 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 14646 0.1 0.0 228244 27744 ? Ss Sep17 21:30 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 15900 0.1 0.0 228244 27744 ? Ss Sep20 15:46 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 16169 0.1 0.0 228248 27752 ? Ss Sep22 12:16 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 16887 0.1 0.0 228244 27748 ? Ss Sep21 14:04 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 16950 0.1 0.0 228244 27744 ? Ss Sep28 2:25 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 19195 0.1 0.0 228244 27748 ? Ss Sep23 10:29 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 24605 0.1 0.0 228248 27752 ? Ss Sep24 8:48 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 26442 0.1 0.0 228244 27744 ? Ss 03:45 0:50 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 29714 0.1 0.0 228248 27752 ? Ss Sep25 7:06 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 31031 0.1 0.0 228248 27752 ? Ss Sep26 5:30 php /var/www/html/myproj/symfony cron:aggregation --env=prod
我需要把他们全部杀掉。显然我想安全地做到这一点。
因此,理想情况下我应该使用类似这样的方法将它们作为 apache 杀死:
kill 11173
问题是 apache 用户没有 shell。
所以看来唯一的方法就是升级到 root 并以 root 身份杀死进程。但它一点也不安全(我可能会错误地杀死其他进程)。
有人有更好的解决方案吗?
谢谢, 丹尼尔
I have a bunch of processes owned by apache that are running for days because they are stuck.
apache 11173 0.1 0.0 228248 27744 ? Ss Sep27 3:58 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 12609 0.1 0.0 228244 27744 ? Ss Sep18 19:30 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 14646 0.1 0.0 228244 27744 ? Ss Sep17 21:30 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 15900 0.1 0.0 228244 27744 ? Ss Sep20 15:46 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 16169 0.1 0.0 228248 27752 ? Ss Sep22 12:16 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 16887 0.1 0.0 228244 27748 ? Ss Sep21 14:04 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 16950 0.1 0.0 228244 27744 ? Ss Sep28 2:25 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 19195 0.1 0.0 228244 27748 ? Ss Sep23 10:29 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 24605 0.1 0.0 228248 27752 ? Ss Sep24 8:48 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 26442 0.1 0.0 228244 27744 ? Ss 03:45 0:50 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 29714 0.1 0.0 228248 27752 ? Ss Sep25 7:06 php /var/www/html/myproj/symfony cron:aggregation --env=prod
apache 31031 0.1 0.0 228248 27752 ? Ss Sep26 5:30 php /var/www/html/myproj/symfony cron:aggregation --env=prod
I need to kill them all. And obviously I want to do it safely.
Thus, ideally I should kill them as apache using something like this:
kill 11173
The problem is that the apache user
doesn't have a shell.
So it seems the only way is escalate to root and kill the process as root. But it is not safely at all (I may kill other processes by mistake).
Has anybody got a better solution?
Thanks,
Daniele
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
sudo -u apache Kill 11173
sudo -u apache kill 11173
我猜这应该属于 http://serverfault.com...但是如果你想杀死所有名为
apache
,以 root 身份运行killall apache
。或者,使用su apache
将身份更改为您的 apache 用户,并像您一样使用kill
终止那里的进程。This should belong on http://serverfault.com I guess... but if you want to kill all processes named
apache
, runkillall apache
as root. Alternatively, change identity to your apache user withsu apache
and kill your processes there usingkill
as you did.