Ниже приведены общие команды, используемые с Process Management — bg, fg, nohup, ps, pstree, top, kill, killall, free, uptime, nice.
Работа с процессами
Краткое примечание: процесс PID в Linux
В Linux каждому запущенному процессу присваивается PID или идентификационный номер процесса. Этот PID показывает, как CentOS идентифицирует конкретный процесс. Как мы уже говорили, systemd — это первый запущенный процесс с PID 1 в CentOS.
Pgrep используется для получения PID Linux для данного имени процесса.
[root@CentOS]# pgrep systemd 1 [root@CentOS]#
Как видно, команда pgrep возвращает текущий PID systemd.
Базовый процесс CentOS и управление заданиями в CentOS
При работе с процессами в Linux важно знать, как основные процессы приоритетного и фонового процессов выполняются в командной строке.
-
fg — выводит процесс на передний план
-
bg — переместить процесс на задний план
-
jobs — Список текущих процессов, прикрепленных к оболочке
-
Ctrl + Z — комбинация клавиш Control + Z, чтобы спать текущий процесс
-
& — Запускает процесс в фоновом режиме
fg — выводит процесс на передний план
bg — переместить процесс на задний план
jobs — Список текущих процессов, прикрепленных к оболочке
Ctrl + Z — комбинация клавиш Control + Z, чтобы спать текущий процесс
& — Запускает процесс в фоновом режиме
Давайте начнем использовать команду сна сна . сон будет просто делать, как его называют, спать в течение определенного периода времени: сон .
[root@CentOS ~]$ jobs [root@CentOS ~]$ sleep 10 & [1] 12454 [root@CentOS ~]$ sleep 20 & [2] 12479 [root@CentOS ~]$ jobs [1]- Running sleep 10 & [2]+ Running sleep 20 & [cnetos@CentOS ~]$
Теперь давайте перенесем первую работу на передний план —
[root@CentOS ~]$ fg 1 sleep 10
Если вы будете следовать, вы заметите, что задний план застрял в вашей оболочке. Теперь переведите процесс в спящий режим, а затем снова включите его в фоновом режиме.
- Хит контроль + Z
- Введите: bg 1, отправив первое задание в фоновый режим и запустив его.
[root@CentOS ~]$ fg 1 sleep 20 ^Z [1]+ Stopped sleep 20 [root@CentOS ~]$ bg 1 [1]+ sleep 20 & [root@CentOS ~]$
поЬир
При работе из оболочки или терминала стоит отметить, что по умолчанию все процессы и задания, прикрепленные к оболочке, завершаются, когда оболочка закрывается или пользователь выходит из системы. При использовании nohup процесс будет продолжаться, если пользователь выйдет из системы или закроет оболочку, к которой присоединен процесс.
[root@CentOS]# nohup ping www.google.com & [1] 27299 nohup: ignoring input and appending output to ‘nohup.out’ [root@CentOS]# pgrep ping 27299 [root@CentOS]# kill -KILL `pgrep ping` [1]+ Killed nohup ping www.google.com [root@CentOS rdc]# cat nohup.out PING www.google.com (216.58.193.68) 56(84) bytes of data. 64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 1 ttl = 128 time = 51.6 ms 64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 2 ttl = 128 time = 54.2 ms 64 bytes from sea15s07-in-f4.1e100.net (216.58.193.68): icmp_seq = 3 ttl = 128 time = 52.7 ms
PS команда
Команда ps обычно используется администраторами для изучения моментальных снимков определенного процесса. PS обычно используется с grep, чтобы отфильтровать определенный процесс для анализа.
[root@CentOS ~]$ ps axw | grep python 762 ? Ssl 0:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork -nopid 1296 ? Ssl 0:00 /usr/bin/python -Es /usr/sbin/tuned -l -P 15550 pts/0 S+ 0:00 grep --color=auto python
В приведенной выше команде мы видим все процессы, использующие интерпретатор python . В результаты также вошла наша команда grep, ищущая строку python .
Ниже приведены наиболее распространенные ключи командной строки, используемые с ps .
переключатель | действие |
---|---|
Исключает ограничения только процессов отчетности для текущего пользователя | |
Икс | Показывает процессы, не привязанные к tty или оболочке |
вес | Форматы широкого вывода вывода на вывод |
е | Показывает среду после команды |
-e | Выбирает все процессы |
-о | Пользовательский форматированный вывод |
-u | Показывает все процессы определенного пользователя |
-С | Показывает все процессы по имени или идентификатору процесса |
—Сортировать | Сортирует процессы по определению |
Чтобы увидеть все процессы, используемые пользователем nobody —
[root@CentOS ~]$ ps -u nobody PID TTY TIME CMD 1853 ? 00:00:00 dnsmasq [root@CentOS ~]$
Чтобы увидеть всю информацию о процессе firewalld —
[root@CentOS ~]$ ps -wl -C firewalld F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 0 762 1 0 80 0 - 81786 poll_s ? 00:00:01 firewalld [root@CentOS ~]$
Давайте посмотрим, какие процессы потребляют больше всего памяти —
[root@CentOS ~]$ ps aux --sort=-pmem | head -10 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND cnetos 6130 0.7 5.7 1344512 108364 ? Sl 02:16 0:29 /usr/bin/gnome-shell cnetos 6449 0.0 3.4 1375872 64440 ? Sl 02:16 0:00 /usr/libexec/evolution-calendar-factory root 5404 0.6 2.1 190256 39920 tty1 Ssl+ 02:15 0:27 /usr/bin/Xorg :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-iDefCt/database -seat seat0 -nolisten tcp vt1 cnetos 6296 0.0 1.7 1081944 32136 ? Sl 02:16 0:00 /usr/libexec/evolution/3.12/evolution-alarm-notify cnetos 6350 0.0 1.5 560728 29844 ? Sl 02:16 0:01 /usr/bin/prlsga cnetos 6158 0.0 1.4 1026956 28004 ? Sl 02:16 0:00 /usr/libexec/gnome-shell-calendar-server cnetos 6169 0.0 1.4 1120028 27576 ? Sl 02:16 0:00 /usr/libexec/evolution-source-registry root 762 0.0 1.4 327144 26724 ? Ssl 02:09 0:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid cnetos 6026 0.0 1.4 1090832 26376 ? Sl 02:16 0:00 /usr/libexec/gnome-settings-daemon [root@CentOS ~]$
Просмотреть все процессы по пользовательскому centos и формату, отображая пользовательский вывод —
[cnetos@CentOS ~]$ ps -u cnetos -o pid,uname,comm PID USER COMMAND 5802 centos gnome-keyring-d 5812 cnetos gnome-session 5819 cnetos dbus-launch 5820 cnetos dbus-daemon 5888 cnetos gvfsd 5893 cnetos gvfsd-fuse 5980 cnetos ssh-agent 5996 cnetos at-spi-bus-laun
Команда pstree
pstree похож на ps, но используется не часто. Он отображает процессы более аккуратным образом дерева.
[centos@CentOS ~]$ pstree systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager─┬─dhclient │ └─2*[{NetworkManager}] ├─2*[abrt-watch-log] ├─abrtd ├─accounts-daemon───2*[{accounts-daemon}] ├─alsactl ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon} │ └─3*[{at-spi-bus-laun}] ├─at-spi2-registr───2*[{at-spi2-registr}] ├─atd ├─auditd─┬─audispd─┬─sedispatch │ │ └─{audispd} │ └─{auditd} ├─avahi-daemon───avahi-daemon ├─caribou───2*[{caribou}] ├─cgrulesengd ├─chronyd ├─colord───2*[{colord}] ├─crond ├─cupsd
Общий вывод pstree может превышать 100 строк. Обычно ps будет давать больше полезной информации.
верхняя команда
top — одна из наиболее часто используемых команд при устранении проблем с производительностью в Linux. Это полезно для статистики в реальном времени и мониторинга процессов в Linux. Ниже приведен вывод команды top по умолчанию при вызове из командной строки.
Tasks: 170 total, 1 running, 169 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.3 us, 2.0 sy, 0.0 ni, 95.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1879668 total, 177020 free, 607544 used, 1095104 buff/cache KiB Swap: 3145724 total, 3145428 free, 296 used. 1034648 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5404 root 20 0 197832 48024 6744 S 1.3 2.6 1:13.22 Xorg 8013 centos 20 0 555316 23104 13140 S 1.0 1.2 0:14.89 gnome-terminal- 6339 centos 20 0 332336 6016 3248 S 0.3 0.3 0:23.71 prlcc 6351 centos 20 0 21044 1532 1292 S 0.3 0.1 0:02.66 prlshprof
Общие горячие клавиши, используемые при запуске top ( горячие клавиши доступны при нажатии клавиши, когда top работает в вашей оболочке).
команда | действие |
---|---|
б | Включает / отключает выделение жирным шрифтом в верхнем меню |
Z | Циклы цветовой схемы |
L | Циклы загрузки среднего курса |
м | Циклы памяти среднего заголовка |
T | Заголовок информации о задании |
час | Меню справки |
Shift + F | Настраивает сортировку и отображение полей |
Ниже приведены общие параметры командной строки для top .
команда | действие |
---|---|
-о | Сортировка по столбцу (может начинаться с — или + для сортировки по возрастанию или по убыванию) |
-u | Показывает только процессы от указанного пользователя |
-d | Обновляет время задержки вершины |
-О | Возвращает список столбцов, к вершине которых можно применить сортировку |
Экран параметров сортировки сверху, представлен с помощью Shift + F. Этот экран позволяет настроить верхнее отображение и параметры сортировки.
Fields Management for window 1:Def, whose current sort field is %MEM Navigate with Up/Dn, Right selects for move then <Enter> or Left commits, 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end! * PID = Process Id TGID = Thread Group Id * USER = Effective User Name ENVIRON = Environment vars * PR = Priority vMj = Major Faults delta * NI = Nice Value vMn = Minor Faults delta * VIRT = Virtual Image (KiB) USED = Res+Swap Size (KiB) * RES = Resident Size (KiB) nsIPC = IPC namespace Inode * SHR = Shared Memory (KiB) nsMNT = MNT namespace Inode * S = Process Status nsNET = NET namespace Inode * %CPU = CPU Usage nsPID = PID namespace Inode * %MEM = Memory Usage (RES) nsUSER = USER namespace Inode * TIME+ = CPU Time, hundredths nsUTS = UTS namespace Inode * COMMAND = Command Name/Line PPID = Parent Process pid UID = Effective User Id
top , показывая процессы для пользователя rdc и отсортированные по использованию памяти —
PID USER %MEM PR NI VIRT RES SHR S %CPU TIME+ COMMAND 6130 rdc 6.2 20 0 1349592 117160 33232 S 0.0 1:09.34 gnome-shell 6449 rdc 3.4 20 0 1375872 64428 21400 S 0.0 0:00.43 evolution-calen 6296 rdc 1.7 20 0 1081944 32140 22596 S 0.0 0:00.40 evolution-alarm 6350 rdc 1.6 20 0 560728 29844 4256 S 0.0 0:10.16 prlsga 6281 rdc 1.5 20 0 1027176 28808 17680 S 0.0 0:00.78 nautilus 6158 rdc 1.5 20 0 1026956 28004 19072 S 0.0 0:00.20 gnome-shell-cal
Отображение допустимых полей сверху (сжато) —
[centos@CentOS ~]$ top -O PID PPID UID USER RUID RUSER SUID SUSER GID GROUP PGRP TTY TPGID
убить команду
Команда kill используется для уничтожения процесса из командной оболочки через его PID. При уничтожении процесса нам нужно указать сигнал для отправки. Сигнал сообщает ядру, как мы хотим завершить процесс. Наиболее часто используемые сигналы —
-
Под SIGTERM подразумевается, что ядро дает процессу знать, что оно должно вскоре остановиться, поскольку это безопасно. SIGTERM дает процессу возможность элегантного выхода и выполнения операций безопасного выхода.
-
SIGHUP большинство демонов перезапускается при отправке SIGHUP . Это часто используется в процессах, когда были внесены изменения в файл конфигурации.
-
SIGKILL, поскольку SIGTERM — это то же самое, что запросить завершение процесса. Ядру нужна опция для завершения процесса, который не будет соответствовать запросам. Когда процесс зависает, опция SIGKILL используется для явного завершения процесса.
Под SIGTERM подразумевается, что ядро дает процессу знать, что оно должно вскоре остановиться, поскольку это безопасно. SIGTERM дает процессу возможность элегантного выхода и выполнения операций безопасного выхода.
SIGHUP большинство демонов перезапускается при отправке SIGHUP . Это часто используется в процессах, когда были внесены изменения в файл конфигурации.
SIGKILL, поскольку SIGTERM — это то же самое, что запросить завершение процесса. Ядру нужна опция для завершения процесса, который не будет соответствовать запросам. Когда процесс зависает, опция SIGKILL используется для явного завершения процесса.
Для вывода списка всех сигналов, которые можно отправить с помощью kill, можно использовать опцию -l —
[root@CentOS]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX [root@CentOS rdc]#
Использование SIGHUP для перезагрузки системы.
[root@CentOS]# pgrep systemd 1 464 500 643 15071 [root@CentOS]# kill -HUP 1 [root@CentOS]# pgrep systemd 1 464 500 643 15196 15197 15198 [root@CentOS]#
pkill позволит администратору отправлять сигнал уничтожения по имени процесса.
[root@CentOS]# pgrep ping 19450 [root@CentOS]# pkill -9 ping [root@CentOS]# pgrep ping [root@CentOS]#
killall убьет все процессы. Будьте осторожны, используя killall в качестве пользователя root, так как он уничтожит все процессы для всех пользователей.
[root@CentOS]# killall chrome
свободная команда
free — довольно простая команда, часто используемая для быстрой проверки памяти системы. Он отображает общий объем используемой физической и подкачки памяти.
[root@CentOS]# free total used free shared buff/cache available Mem: 1879668 526284 699796 10304 653588 1141412 Swap: 3145724 0 3145724 [root@CentOS]#
хорошая команда
Nice позволит администратору установить приоритет планирования процесса с точки зрения использования процессора. Лучше всего то, как ядро будет планировать срезы процессорного времени для процесса или задания. По умолчанию предполагается, что процессу предоставляется равный доступ к ресурсам процессора.
Во-первых, давайте используем top, чтобы проверить правильность запущенных процессов.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 28 root 39 19 0 0 0 S 0.0 0.0 0:00.17 khugepaged 690 root 39 19 16808 1396 1164 S 0.0 0.1 0:00.01 alsactl] 9598 rdc 39 19 980596 21904 10284 S 0.0 1.2 0:00.27 tracker-extract 9599 rdc 39 19 469876 9608 6980 S 0.0 0.5 0:00.04 tracker-miner-a 9609 rdc 39 19 636528 13172 8044 S 0.0 0.7 0:00.12 tracker-miner-f 9611 rdc 39 19 469620 8984 6496 S 0.0 0.5 0:00.02 tracker-miner-u 27 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd 637 rtkit 21 1 164648 1276 1068 S 0.0 0.1 0:00.11 rtkit-daemon 1 root 20 0 128096 6712 3964 S 0.3 0.4 0:03.57 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.50 ksoftirqd/0 7 root 20 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:02.07 rcu_sched
Мы хотим сосредоточиться на колонке NICE, изображенной NI . Диапазон добротности может быть в диапазоне от -20 до плюс 19. -20 представляет самый высокий данный приоритет.
nohup nice --20 ping www.google.com &
Renice
renice позволяет нам изменить текущий приоритет процесса, который уже запущен.
renice 17 -p 30727
Приведенная выше команда понизит приоритет нашей команды процесса ping .