Процесс является абстракцией, используемый операционной системой Linux, чтобы представить работающую программу. Каждый процесс в Linux состоит из адресного пространства и набора структур данных в ядре сервера. Адресное пространство содержит код и библиотеки, когда процесс выполняется, переменные процесса, ее стеки и другую дополнительную информацию, необходимую для ядра в то время как процесс запущен.
- PID представляет собой уникальный идентификационный номер с именем и назначается ядром для каждого процесса. PID присваиваются в порядке, как создаются процессы.
- UID является номер идентификации пользователя, который его создал.
- EUID является «эффективным» идентификатором пользователя, используемый для определения, какие ресурсы и файлы процесса имеют разрешение на доступ в любой данный момент. В общем, UID и EUID одни и те же, за исключением программ, которые являются setuid исключением.
- GID это группа идентификационных номеров процесса. EGID связана с GID таким же образом, как EUID связана с UID. Короче говоря, процесс может быть членом многих групп одновременно.
Ниже перечислены некоторые основные команды для управления процессами в Linux:
1. ps — это одна из основных команд системного администратора Linux, используемых для мониторинга процессов. В то время, как различные версии PS отличаются по своим аргументам и отображением, все они обеспечивают ту же информацию. Вывод команды ps может показать PID, UID, приоритет, и управляющий терминал процессов. Он также дает информацию о том, сколько процессорного времени она потребляется, сколько памяти процесс использует, и его текущее состояние (состояние).
Процесс утверждает коды:
- R — run — процесс запущен/может быть выполнен.
- D — источник бесперебойного сна
- S — прерывание сна — процесс ждет некоторое событие для завершения
- T — трассируется или остановлен
- Z — Zombie — несуществующий процесс, прерванный процесс, но по-прежнему висит в процессе таблицы ядра, потому что у родителя этого процесса до сих пор не установлен статус завершения этого процесса.
Вот пример вывода ps aux на CentOS 7 VPS:
[root@destroyer ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 190656 2116 ? Ss Mar16 1:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 root 2 0.0 0.0 0 0 ? S Mar16 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Mar16 0:38 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< Mar16 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S Mar16 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S Mar16 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S Mar16 4:57 [rcu_sched] root 10 0.0 0.0 0 0 ? S Mar16 0:03 [watchdog/0] root 11 0.0 0.0 0 0 ? S Mar16 0:02 [watchdog/1] root 12 0.0 0.0 0 0 ? S Mar16 0:01 [migration/1] root 13 0.0 0.0 0 0 ? S Mar16 0:52 [ksoftirqd/1] root 17 0.0 0.0 0 0 ? S< Mar16 0:00 [khelper] root 18 0.0 0.0 0 0 ? S Mar16 0:00 [kdevtmpfs] root 19 0.0 0.0 0 0 ? S< Mar16 0:00 [netns] root 20 0.0 0.0 0 0 ? S Mar16 0:00 [khungtaskd] root 21 0.0 0.0 0 0 ? S< Mar16 0:00 [writeback] root 22 0.0 0.0 0 0 ? S< Mar16 0:00 [kintegrityd] root 23 0.0 0.0 0 0 ? S< Mar16 0:00 [bioset] root 24 0.0 0.0 0 0 ? S< Mar16 0:00 [kblockd] root 25 0.0 0.0 0 0 ? S< Mar16 0:00 [md] root 31 0.0 0.0 0 0 ? S Mar16 4:51 [kswapd0] root 32 0.0 0.0 0 0 ? SN Mar16 0:00 [ksmd] root 33 0.0 0.0 0 0 ? SN Mar16 0:02 [khugepaged] root 34 0.0 0.0 0 0 ? S Mar16 0:00 [fsnotify_mark] root 35 0.0 0.0 0 0 ? S< Mar16 0:00 [crypto] root 43 0.0 0.0 0 0 ? S< Mar16 0:00 [kthrotld] root 44 0.0 0.0 0 0 ? S< Mar16 0:00 [kmpath_rdacd] root 46 0.0 0.0 0 0 ? S< Mar16 0:00 [kpsmoused] root 47 0.0 0.0 0 0 ? S< Mar16 0:00 [ipv6_addrconf] root 66 0.0 0.0 0 0 ? S< Mar16 0:00 [deferwq] root 99 0.0 0.0 0 0 ? S Mar16 0:00 [kauditd] root 222 0.0 0.0 0 0 ? S< Mar16 0:00 [ata_sff] ...
Краткое объяснение вывода ‘ps aux‘:
- USER — имя пользователя текущего процесса
- PID — ID процесса.
- %CPU — Процент использования от CPU определенного процесса.
- %MEM — Процент использования реальной памяти определенного процесса.
- VSZ — виртуальный размер процесса
- RSS — Резидентный размер (Количество страниц в памяти)
- TTY — ID управляющего терминала
- STAT — Текущее состояние процесса
- START — время запуска команды
- TIME — время потребления процессом центрального процессора.
- COMMAND — имя и аргументы командной строки
2. pstree — команда отображает процессы в виде дерева:
[root@destroyer ~]# pstree systemd─┬─NetworkManager───2*[{NetworkManager}] ├─agetty ├─atd ├─auditd───{auditd} ├─core───6*[{core}] ├─core───3*[{core}] ├─crond───freshclam-sleep───sleep ├─crond ├─dbus-daemon ├─fail2ban-server───8*[{fail2ban-server}] ├─firewalld───{firewalld} ├─httpd─┬─10*[httpd] │ └─httpd───httpd───php ├─ihttpd───shellinaboxd───shellinaboxd─┬─ispmgr.6fc55a51───bash───top │ └─ispmgr.6fc55a51───bash───pstree ├─irqbalance ├─mysqld_safe───mysqld───28*[{mysqld}] ├─named───4*[{named}] ├─nginx───2*[nginx] ├─ntpd ├─polkitd───5*[{polkitd}] ├─rsyslogd───2*[{rsyslogd}] ├─sshd───sshd───sshd───sftp-server ├─systemd-journal ├─systemd-logind ├─systemd-udevd └─tuned───4*[{tuned}]
3. top — Еще один способ выяснить, какие процессы запущены на сервере:
top - 12:07:24 up 6 days, 7:30, 1 user, load average: 0.61, 0.32, 0.22 Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie %Cpu(s): 28.1 us, 4.5 sy, 0.0 ni, 65.5 id, 1.5 wa, 0.0 hi, 0.3 si, 0.0 st KiB Mem : 1016388 total, 308200 free, 369696 used, 338492 buff/cache KiB Swap: 2097148 total, 1704100 free, 393048 used. 439256 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 25476 mysql 20 0 1512488 117216 3604 S 2.3 11.5 64:27.15 mysqld 870 apache 20 0 67120 8272 1772 S 1.0 0.8 21:28.85 nginx 4083 andreyex 20 0 338368 91508 10040 S 0.7 9.0 0:00.95 php 9 root 20 0 0 0 0 S 0.3 0.0 4:57.99 rcu_sched 13 root 20 0 0 0 0 S 0.3 0.0 0:52.78 ksoftirqd/1 806 root 20 0 140440 5176 2264 S 0.3 0.5 0:50.94 ihttpd 1 root 20 0 190656 2040 1168 S 0.0 0.2 1:01.73 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.11 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:38.29 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root rt 0 0 0 0 S 0.0 0.0 0:00.93 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 10 root rt 0 0 0 0 S 0.0 0.0 0:03.03 watchdog/0 11 root rt 0 0 0 0 S 0.0 0.0 0:02.60 watchdog/1 12 root rt 0 0 0 0 S 0.0 0.0 0:01.96 migration/1 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 20 root 20 0 0 0 0 S 0.0 0.0 0:00.19 khungtaskd 21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback 22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd 23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset 24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd 25 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md 31 root 20 0 0 0 0 S 0.0 0.0 4:51.66 kswapd0 32 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd ...
4. kill — команда чаще всего используется для завершения процесса. Kill может послать любой сигнал, но по умолчанию, он посылает TERM. Kill может быть использован обычными пользователями в их собственных процессах или корневыми любыми процессами.
Синтаксис команды kill:
kill [-signal] pid
где signal — номер или символическое имя сигнала, который будет отправлен и PID является идентификатор процесса целевого процесса.
Kill без номера сигнала не гарантирует, что этот процесс будет закрыт, потому что сигнал TERM может быть пойман, заблокирован или проигнорирован.
Команда ‘kill -9 pid’ ‘гарантирует’ уничтожение процесса, потому что сигнал 9, kill, не может быть перехвачен. Командой killall убивают процессы по имени. Например, следующая команда убивает все процессы Dovecot:
$ sudo killall dovecot
5. Ctrl + Z — эта команда используется для приостановки текущего процесса переднего плана и переместит его на задний план:
# service spamd restart Redirecting to /bin/systemctl restart spamd.service ^Z [1]+ Stopped service spamd restart
6. jobs — Отображение списка текущих заданий, запущенных в фоновом режиме:
# jobs [1]+ Stopped service spamd restart
7. fg — эта команда используется для перемещения фонового процесса на первый план:
# fg 1 service spamd restart
PS . Если вам понравился этот пост, можете поделиться им с друзьями в социальных сетях с помощью социальных сетей или просто оставить комментарий ниже.