Основы команд Linux - 7 команд для управления процессами

Если вы новичок в Linux и вам нужна помощь в управлении процессами, эти базовые команды для вас.

Предположим, вы впервые изучаете командную строку Linux или входите в систему администрирования Linux. В этом случае очень важно понимать,
как обходить терминал и выполнять основные задачи. Чтобы помочь вам понять эти концепции, ознакомьтесь с двумя моими предыдущими статьями:

Однако, если вы чувствуете себя комфортно с этими концепциями, в этой статье мы немного расширим ваши знания о Linux. Мы рассмотрим процессы и способы управления ими.

Итак, что же такое процесс ?

Дополнительные ресурсы Linux

В Linux процесс - это любой активный (запущенный) экземпляр программы. Но что такое программа ? Что ж, технически программа - это любой исполняемый файл, хранящийся на вашем компьютере. Каждый раз, когда вы запускаете программу, вы создаете процесс. На базовом уровне этим довольно легко управлять, и именно это мы и рассмотрим сегодня.

Что нужно для начала

Я рекомендую вам следить за своей любимой виртуальной машиной. Таким образом, вы можете попытаться и потерпеть неудачу без каких-либо последствий (что, безусловно, лучший способ освоиться в терминале).

Для этой демонстрации я собираюсь запустить процесс сна на 500 секунд. Такой подход позволяет вам увидеть процесс, не внося существенных изменений в мою систему.

    [tcarrigan@client ~]$ sleep 500
    ^Z
    [1]+  Stopped                 sleep 500

Затем я остановил процесс с помощью Ctrl + Z, чтобы мы могли использовать наш терминал.

1. Перечислите процессы

Чтобы отобразить текущие активные процессы, используйте ps команду:

    [tcarrigan@client ~]$ ps
        PID TTY          TIME CMD
       2648 pts/0    00:00:00 bash
       3293 pts/0    00:00:00 sleep
       3300 pts/0    00:00:00 ps

Здесь вы получите небольшую информацию об активных процессах в вашей системе. Вам нужно обратить внимание на PID (уникальный идентификатор процесса), TIME (время, в течение которого процесс был запущен) и CMD (команда, выполняемая для запуска процесса).

2. Подробный список (процессы)

Чтобы увидеть невероятно подробный список процессов, вы можете использовать ps aux команду.

  • а - все пользователи
  • u - показывает пользователя / владельца
  • x - отображает процессы, которые не выполняются в терминале (что делает вывод довольно длинным)

Вы можете увидеть команду здесь (вывод изменен по длине):

    [tcarrigan@client ~]$ ps aux
    USER         PID %CPU %MEM   VSZ    RSS   TTY  STAT  START    TIME   COMMAND
    tcarrig+    3293  0.0  0.0 215292   520 pts/0    T    13:41   0:00 sleep 500
    root        3380  0.0  0.0      0     0 ?        I    13:45   0:00 [kworker/1:1-mm_percpu_wq]
    root        3381  0.0  0.0      0     0 ?        I    13:45   0:00 [kworker/1:3]
    root        3398  0.0  0.0      0     0 ?        I    13:46   0:00 [kworker/3:2-ata_sff]
    root        3481  0.0  0.0      0     0 ?        I    13:50   0:00 [kworker/u8:2-flush-253:0]
    root        3482  0.0  0.0      0     0 ?        I    13:50   0:00 [kworker/0:1-events]
    root        3483  0.0  0.0      0     0 ?        I    13:50   0:00 [kworker/0:2]
    root        3508  0.0  0.0      0     0 ?        I    13:51   0:00 [kworker/3:0-ata_sff]
    root        3511  0.0  0.0  18892  7732 ?        S    13:52   0:00 systemd-userwork
    root        3512  0.0  0.0  18892  7656 ?        S    13:52   0:00 systemd-userwork
    root        3513  0.0  0.0  18892  7656 ?        S    13:52   0:00 systemd-userwork
    root        3566  0.4  0.0 432792  8024 ?        Ssl  13:54   0:00 /usr/libexec/fprintd
    tcarrig+    3598  0.0  0.0 228208  3948 pts/0    R+   13:54   0:00 ps aux

3. Убить по PID

Неизбежно процесс зависнет, и вам это понадобится kill. Чем больше времени вы проводите в интерфейсе командной строки, тем больше вероятность, что вам понадобится killкоманда. Самый точный способ идентифицировать процесс - это идентификатор процесса (PID).

Используйте следующий синтаксис:

    [tcarrigan@client ~]$ kill PID

Эта команда отправляет сигнал SIGTERM . Однако, если вы имеете дело с зависшим процессом, добавьте эту -9опцию.

    [tcarrigan@client ~]$ ps
        PID TTY          TIME CMD
       2648 pts/0    00:00:00 bash
       3293 pts/0    00:00:00 sleep
       4684 pts/0    00:00:00 sleep
      40527 pts/0    00:00:00 sleep
      40540 pts/0    00:00:00 ps
    [tcarrigan@client ~]$ sudo kill -9 3293
    [sudo] password for tcarrigan: 
    [1]   Killed                  sleep 500

4. Убить по имени / ключевому слову

Используйте killallкоманду, чтобы убить процесс по имени. Эта команда уничтожит все процессы с указанным вами ключевым словом / именем.

Синтаксис:

    [tcarrigan@client ~]$ killall sleep

Это убьет все sleepактивные процессы в системе (этот -9параметр также работает). Вот пример:

    [tcarrigan@client ~]$ ps
        PID TTY          TIME CMD
       2648 pts/0    00:00:00 bash
       4684 pts/0    00:00:00 sleep
      40527 pts/0    00:00:00 sleep
      40540 pts/0    00:00:00 ps
    [tcarrigan@client ~]$ killall -9 sleep 
    [2]-   Killed                  sleep 500
    [3]+   Killed                  sleep 500

Следующие две команды идут рука об руку. Они позволяют вам перемещать / управлять фоновыми командами. Я дам общий взгляд на синтаксис ниже; однако для более подробного изучения этих команд см. мою предыдущую статью на эту тему.

5. Составьте список фоновых заданий и возобновите фоновые задания

Для составления списка фоновых заданий и управления ими мы будем использовать bgкоманду.
Я запустил новый sleep 500 процесс, а затем остановил его, отправив в фоновый режим. Таким образом, мы видим его в списке при запуске bgниже:

    [tcarrigan@client ~]$ bg
    [1]+ sleep 500 &

6. Выведите на передний план самую последнюю работу.

Для этого воспользуемся fg командой. Это выводит на передний план последнее запущенное задание / процесс.
Следующий пример является продолжением указанной выше команды. sleep 500
Процесс , который находится в фоновом режиме в настоящее время работает в фоновом режиме. Вынесем это на свет …

    [tcarrigan@client ~]$ fg
    sleep 500

Эта команда подводит нас к нашей последней команде в этом списке.

7. Выдвигайте конкретную работу на передний план.

Используйте fg команду еще раз, но выберите конкретное задание, которое нужно вывести на передний план (вместо самого последнего). Для этого мы просто добавим в команду имя задания / процесса.

    [tcarrigan@client ~]$ fg XXXample

Это выводит задание XXXample на передний план.

[Хотите проверить свои навыки системного администратора? Пройдите оценку навыков сегодня.]

Подведение итогов

В сегодняшней статье «Основы команд Linux» мы рассмотрели процессы и способы управления ими. Теперь вы можете выполнять общие задачи управления процессами - все, от перечисления и уничтожения до перехода между фоном и передним планом. Если есть другие общие области администрирования Linux, для которых вы хотели бы видеть специальный список команд, напишите команде по адресу [enable-sysadmin@redhat.com][13] , и я сделаю все возможное, чтобы [конкретизировать][13] это для вас.