- Завершить все процессы пользователя на Linux
- 2 ответа 2
- Похожие
- Подписаться на ленту
- Завершить процессы пользователя в Linux
- Завершение процессов пользователя с использованием grep
- Завершение процессов пользователя с использованием pgrep
- Завершение процессов пользователя с использованием pkill
- Завершение процессов пользователя с использованием killall
- Завершение процессов пользователя с использованием slay
- Завершение всех процессов пользователя linux
- Как завершить все процессы пользователя?
- How to Kill all Processes for a User in Linux
- Understanding System Signals
- Method #1 – The Killall Command
- How to kill all user processes with killall
- Method #2: The Pkill Command
- Conclusion
- About the author
- John Otieno
Завершить все процессы пользователя на Linux
Как это сделать? Определить имена пользователей, с правами которых запущенны процессы. Завершить выполнение процессов, запущенных с правами некоторого пользователя.
1) man ps (например, ps aux ) 2) вытащить оттуда PID нужных процессов и послать им TERM (как — варианты уже разные. )
2 ответа 2
Пример, завершаем (хе-хе) все процессы пользователя root :
$ ps au | grep -e '^root' | awk '' | xargs kill -TERM
Ergo, в этом случае копать в сторону man ps , man grep , man awk , man xargs .
берез со стандартного ввода строчку и запускает команду kill -TERM $@ передав эту строчку как аргументы. Так для каждой
Есть шикарные команды pgrep и pkill из пакета procps-ng
завершит все процессы пользователя USER
покажет все PID пользователя USER
Пример PinkTux можно сократить до:
~# ps aux | awk '/^USER/ ' | xargs kill -9
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.7.14.43533
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Завершить процессы пользователя в Linux
Иногда возникают задачи, когда необходимо завершить все процессы пользователя в Linux. Например: Пользователь удален из системы, значительная активность пользователя, в том числе вредоносная.
Для того что бы завершить процессы пользователя Linux, есть несколько инструментов.
Завершение процессов пользователя с использованием grep
В данном способе мы передаем ID процессов команде kill, полученных от утилиты ps
ps -ef | grep | awk '< print $2 >' | xargs kill -9
Завершение процессов пользователя с использованием pgrep
pgrep позволяет обеспечить более элегантный способ найти все процессы пользователя.
Завершение процессов пользователя с использованием pkill
Использование утилиты pkill, так же довольно простой способ завершить процессы пользователя в Linix. По умолчанию утилита отправляет сигнал SIGTERM.
Завершение процессов пользователя с использованием killall
Способ с использованием killall похож на использование утилиты pkill.
Завершение процессов пользователя с использованием slay
Slay — инструмент командной строки, единственной целью которого является завершение процессов пользователя в Linux. Slay отправляет всем процессам сигнал SIGTERM, если какие-то процессы не были завершены, то через 10 секунд slay отправит им сигнал SIGKILL, доступен в Debian и Ubuntu.
Завершение всех процессов пользователя linux
В этой статье мы расскажем о том, как убить все процессы пользователя запущенные в Линукс.
Как мы знаем, Linux — многопользовательская ОС, поэтому с каждым пользователем могут быть связаны его собственные процессы. Такое разделение существует в целях безопасности. Запуская ту или иную программу от имени непривилегированного пользователя, ОС снижает риски несанкционированного проникновения и риски повреждения системных файлов.
Как завершить все процессы пользователя?
Для начала сформируем перечень всех процессов всех пользователей. В терминале Linux выполним следующую команду:
Как видно на скриншоте, имеются процессы, связанные с тремя пользователями (root, mint1 и mint). Допустим, нам срочно понадобилось завершить все процессы пользователя mint1.
Здесь следует немного подробнее остановиться на самом понятии процесса в Linux. Процесс – программа, запущенная в виртуальном адресном пространстве. Каждый процесс имеет свой уникальный номер или идентификатор — PID (Process Identificator). Работая с процессами, операционная система идентифицирует процессы именно по PID.
Для того, чтобы убить ненужные процессы, достаточно убить все PID процессов конкретного пользователя (в данном случае mint1). Для этого можно просто скопировать номера идентификаторов этого пользователя и ввести следующую команду:
Однако, количество PID может быть куда больше двух. Да и выполнить все действия вообще-то тоже можно с помощью одной команды, умещающейся в одну строку.
Например, используем конвейер и программу grep ( символ | обозначает передачу результатов выполнения первой команды второй команде по конвейеру):
С помощью grep были выбраны все процессы пользователя mint1. Далее необходимо из второй колонки слева выбрать все PID. Сделаем это с помощью программы awk, добавив, соответственно, ещё один конвейер:
Теперь нужно убить полученные значения PID. Опять добавим конвейер (в данном и последующих примерах все команды выполняются от имени суперпользователя root) и выполним группу команд:
$ ps au | grep -e ‘^mint1’ | awk » | xargs kill -9
С помощью такой конвейеризованной группы команд мы завершили все процессы пользователя mint1.
Подобный конвейер можно было бы сформировать и так:
$ ps aux | awk ‘/^mint1/ ‘ | xargs kill -9
Кроме того, для того, чтобы убить все процессы пользователя в Linux, можно воспользоваться также следующими командами:
Однако и это ещё не всё. Нужно ещё проверить наличие процессов, связанных с пользователем mint1, и их состояние. Сделаем это с помощью команды:
Как видите, процессы, связанные с пользователем mint1, отсутствуют. Способов убить все процессы пользователя в Linux достаточно много, мы показали лишь некоторые из них.
How to Kill all Processes for a User in Linux
There is nothing more frustrating than logging into your Linux system only to have many processes slowing down your machine. Although Linux is very good at process management, you may need to terminate some processes manually.
In this tutorial, we shall discuss how to find and kill processes from a specific user. We will use tools such as pkill and killall.
NOTE: Ensure you have access to an administrative account or the root account because regular users can only kill their processes, not processes belonging to other users. On the other hand, the root user can kill all processes.
Understanding System Signals
To kill a specific process, the command sends a signal to the process. By default, kill commands such as killall send a TERM signal that gracefully stops the specified process.
Before we proceed to kill command, let us take a brief overview of the process signals.
The common types of kill signals include:
- SIGHUP – This signal reloads a process. It has an integer value of 1.
- SIGINT – Interrupt from the keyboard such as CTRL + C. It has an integer value of 2.
- SIGKILL – Kill a process. It has an integer value of 9.
- SIGTERM – This is a termination signal, which, as stated, gracefully stops a process. It has an integer value of 15.
- SIGSTOP – Stops a process. It has an integer value of either 17, 19, or 23.
NOTE: When terminating processes, it is good to start with the least aggressive signal, such as TERM. Using a signal such as TERM will allow the program to shut down correctly and use the set measures when the program receives the TERM signal.
A KILL signal can also be helpful, especially if a process has encountered an error, fails to exit or does not respond to the INT signal.
To view all the available signals, use a command such as a kill -l
Method #1 – The Killall Command
The first command you can use to kill Linux processes is the killall command. For this, you need the PID value or the name of the process you wish to terminate.
You can use a tool such as pgrep to get the PID of a specific process.
Once you have the PID value of the process, you can terminate using the kill command as:
The command above will send a graceful termination signal.
To send a KILL signal, use the -9 integer as:
How to kill all user processes with killall
Killall command allows you to terminate all the processes owned by a specific user. To do this, use the -u flag.
For example, to terminate all processes spawned by the ubuntu user.
CAUTION: Depending on the user specified in the command, terminating the processes can cause the system to crash or stop critical system processes. Therefore, before applying this command, ensure the user in question is not running processes you do not wish to terminate.
Method #2: The Pkill Command
Another great tool you can use to terminate Linux processes is the pkill command. This command works similarly to killall.
For example, to terminate the bash process with pkill, use the command:
To kill all processes owned by the ubuntu user, we can use the command:
Conclusion
In this guide, we quickly discussed ways to terminate processes in Linux and various types of kill signals. As seen, killing a single process or multiple processes owned by a specific Linux user is easy.
About the author
John Otieno
My name is John and am a fellow geek like you. I am passionate about all things computers from Hardware, Operating systems to Programming. My dream is to share my knowledge with the world and help out fellow geeks. Follow my content by subscribing to LinuxHint mailing list