Во время работы ваши программы иногда внезапно зависают. В других случаях программы все еще работают, но с высоким потреблением процессора или памяти. В Linux это можно исправить с помощью команды ps
(P process S tatus). Здесь мы покажем вам, как использовать команду ps
в Linux для получения списка запущенных в данный момент процессов и их PID. Затем вы сможете найти и завершить процессы, потребляющие ваши ресурсы.
Читайте также: Руководство для начинающих по команде pstree в Linux
Использование команды «ps»
Команду ps
можно использовать отдельно. Он выведет четыре столбца информации:
- PID : уникальный идентификатор процесса, определенный системой. Это значение, которое мы используем для остановки процесса.
- TTY : терминал, с которого был запущен процесс.
- ВРЕМЯ : о
Contents
- 1 Использование команды «ps»
- 2 1. Список процессов всех пользователей
- 3 2. Список процессов с дополнительной информацией
- 4 3. Фильтровать процесс по идентификатору процесса
- 5 4. Список процессов, принадлежащих пользователю
- 6 5. Перечислить активные процессы
- 7 6. Список активных процессов с пользователями
- 8 7. Фильтровать процесс по названию программы
- 9 8. Отображение определенных столбцов
- 10 9. Отображение результатов в стиле иерархического дерева
- 11 10. Отображение потоков процесса
- 12 11. Показать все корневые процессы
- 13 Используйте команду kill, чтобы остановить процесс
Использование команды «ps»
ни, используемого процессом. - CMD : команда, генерирующая процесс
![Команда вывода Ps 1](https://saintist.ru/wp-content/uploads/2024/05/ps-output-command-1.jpg)
Обратите внимание: когда вы используете команду без каких-либо опций, она не отображает много информации. Вот несколько способов сделать его более полезным.
1. Список процессов всех пользователей
При установке некоторых программ они иногда также создают дополнительных пользователей для запуска процесса. Чтобы просмотреть процессы пользователей, используйте параметр -e
:
ps -e
и его вывод:
PID TTY TIME CMD 1 ? 00:00:02 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 kworker/0:0 4 ? 00:00:00 kworker/0:0H 5 ? 00:00:00 kworker/u256:0 6 ? 00:00:00 mm_percpu_wq
2. Список процессов с дополнительной информацией
Дополнительную информацию можно получить, перечислив запущенный процесс. Для этого вы можете использовать опцию ef
.
ps -ef
и его вывод:
UID PID PPID C STIME TTY TIME CMD root 1 0 0 21:34 ? 00:00:03 /sbin/init maybe-ubiquity root 2 01. Список процессов всех пользователей 00:00:00 [kthreadd] root 3 2 0 21:34 ? 00:00:00 [kworker/0:0] root 4 2 0 21:34 ? 00:00:00 [kworker/0:0H] root 6 2 0 21:34 ? 00:00:00 [mm_percpu_wq] root 7 2 0 21:34 ? 00:00:00 [ksoftirqd/0]
3. Фильтровать процесс по идентификатору процесса
Если вы знаете
2. Список процессов с дополнительной информацией
зить, вы можете отфильтровать его с помощью флага-p
. В качестве аргументов может использоваться несколько PID, разделенных одной запятой и без пробела.
ps -ef -p 1234,5678,9012
4. Список процессов, принадлежащих пользователю
Вы также можете перечислить процессы, принадлежащие пользователю, с помощью параметра u
, за которым следует имя пользователя:
ps -u userName
<
и его вывод:
PID TTY TIME CMD 2832 ? 00:00:00 systemd 2842 ? 00:00:00 (sd-pam) 3043 ? 00:00:00 sshd 3044 pts/1 00:00:00 bash 18396 pts/1 00:00:00 ps
5. Перечислить активные процессы
Можно вывести список всех активных процессов, используя параметр ax
:
ps -ax
и его вывод:
PID TTY STAT TIME COMMAND 1 ? Ss 0:02 /sbin/init maybe-ubiquity 2 ? S 0:00 [kthreadd] 3 ? I 0:00 [kworker/0:03. Фильтровать процесс по идентификатору процессаn> 0:00 [kworker/0:0H] 6 ? I< 0:00 [mm_percpu_wq] 7 ? S 0:00 [ksoftirqd/0]
6. Список активных процессов с пользователями
Если вы добавите флаг -aux
, можно вывести список всех активных процессов с пользователями:
ps -aux
и его вывод:
USER4. Список процессов, принадлежащих пользователю
TTY STAT START TIME COMMAND root 1 0.0 0.2 78132 9188 ? Ss 21:34 0:02 /sbin/init maybe-ubiquity root 2 0.0 0.0 0 0 ? S 21:34 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I 21:34 0:00 [kworker/0:0] root 4<5. Перечислить активные процессы
> 0 0 ? I< 21:34 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? I< 21:34 0:00 [mm_percpu_wq] root 7 0.0 0.0 0 0 ? S 21:34 0:00 [ksoftirqd/0] root 8 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_sched] root 9 0.0 0.0 0 0 ? I 21:34 06. Список активных процессов с пользователямиspan>10 0.0 0.0 0 0 ? S 21:34 0:00 [migration/0]
7. Фильтровать процесс по названию программы
Можно получить информацию о конкретной запущенной программе, применив фильтр к результату ps
:
ps -aux | grep docker
и его вывод:
root 1508 0.0 2.2 1518156 90868 ? Ssl 21:34 0:03 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock userkub+ 18429 0.0 0.0 13144 1108 pts/1 S+ 23:57 0:00 grep --color=auto docker
Кроме того, вы также можете использовать параметр C
, чтобы отфильтровать процесс по его имени:
ps -C name
![Используйте Ps в Linux C флаг](https://saintist.ru/wp-content/uploads/2024/05/use-ps-on-linux-c-flag.jpg)
8. Отображение определенных столбцов
В дополнение к четырем столбцам по умолчанию вы можете получить ps
для отображения дополнительного столбца с информацией. Например:
ps -e -o pid,uname,pcpu,pmem,comm
![Используйте Ps в Linux с флагом O](https://saintist.ru/wp-content/uploads/2024/05/use-ps-on-linux-o-flag.png)
Флаг -o
устанавливает определенные параметры отображения результатов команды ps
. См. полный список стандартные параметры отображения для ps .
9. Отображение результатов в стиле иерархического дерева
ps -e --forest
При этом используются символы ASCII для создания древовидной структуры для отображения процессов. Показывает разветвленные и дочерние процессы как потомков соответствующих родительских процессов с сортировко
7. Фильтровать процесс по названию программы
уйте-H
вместо --forest
.
10. Отображение потоков процесса
ps -p 4041 -L
![Использовать Ps в Linux L Threads Флаг](https://saintist.ru/wp-content/uploads/2024/05/use-ps-on-linux-L-threads-flag.png)
Флаг -L
включает потоковое отображение любых функций ps. Это наиболее полезно при отслеживании потоков определенного процесса.
11. Показать все корневые процессы
ps -f -U root -u root
![Используйте Ps в корневых процессах Linux 2](https://saintist.ru/wp-content/uploads/2024/05/use-ps-on-linux-root-processes-2.png)
Выполните поиск всех процессов, запущенных с реальными и эффективными корневыми идентификаторами. Они отображаются в полном формате благодаря флагу -f
. Вы можете объединить его с флагом -o
для настройки вывода.
Используйте команду kill, чтобы остановить процесс
Обнаружив некорректно работающий процесс, вы можете использовать команда убийства , чтобы завершить запущенный процесс. Команда отправляет сигнал процессу,
8. Отображение определенных столбцов
висли, в большинстве случаев вам придется принудительно завершить их с помощью параметра-9
.
![Команда уничтожения вывода 1](https://saintist.ru/wp-content/uploads/2024/05/kill-output-command-1.jpg)
Вывод команды ps — мгновенное представление. В отличие от
, он не обновляется динамически. Это означает, что вам, возможно, придется запустить его несколько раз, чтобы получить четкое представление о том, какой процесс ведет себя неправильно. Чтобы получить актуальное представление о процессах, вы можете попробовать несколько другие команды для системы Linux.9