Убить все процессы для данного пользователя
есть ли надежный способ убить все процессы данного пользователя? kill(-1, SIGKILL) как этот пользователь будет работать, если изгоев процесс этого пользователя убивает процесс убийства в первую очередь. Лучшее, что я могу найти до сих пор, это петля через system("ps -u") для этого пользователя и убить процессы таким образом, но это кажется действительно хаки и неэффективно.
EDIT: чтобы уточнить, я специально прошу POSIX-совместимое решение. По какой-то причине я думал, что пометка вопроса posix поставит это в заглавие:.
5 ответов:
просто (временно) убил мой Macbook с
killall -u pu -m .где pu - мой идентификатор пользователя. Смотрите на точку в конце команды.
попробовать
pkill -u puили
ps -o pid -u pu | xargs kill -1
вот один лайнер, который делает это, просто замените имя пользователя на имя пользователя, для которого вы хотите убить вещи. Даже не думайте о том, чтобы пустить там корни!
pkill -9 -u `id -u username`Примечание: Если вы хотите быть хорошим удалить -9, но это не убьет все виды процессов.
в Debian LINUX я использую:
ps -o pid= -u username | xargs sudo kill -9.С
-o pid=заголовок ps подавляется, и выводится только список pid. Насколько я знаю, оболочка Debian соответствует POSIX.
Как насчет итерации в виртуальной файловой системе /proc ? http://linux.die.net/man/5/proc ?
Comments