Найти тему
Игорь Сотников

РАБОТА С ПРОЦЕССАМИ В LINUX. Часть 1.

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

  • Запуск задачи в активном и фоновом режиме;
  • Заставить задачу выполнятся после выхода из системы;
  • Отслеживать и сортировать активные процессы;
  • Завершать процессы;

Постараемся разобрать следующие понятия:

  • Fg (foreground) и bg (background);
  • Nohup (no hang up);
  • Ps - информация об активных процессах;
  • Pstree - дерево процессов;
  • Pgrep - поиск процессов;
  • Pkill - завершение процессов;
  • Top - диспетчер задач;
  • Free - загрузка оперативной памяти;
  • Uptime - время и полнота загрузки;
  • Screen - управление сессиями.

Начнем разбирать данную тему с простой команды.

КОМАНДА SLEEP

man sleep

-2

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

В частности, мы можем посмотреть следующий пример:

sleep 1000 - после данной команды, мы можем вводить в консоль различные символы, они будут появляться на экране но машина и операционная система не будет реагировать. Для того чтобы прервать нажимаем ctrl + c сочетание клавиш.

Когда набираем команду, она начинает работать в активном режиме и занимает консоль, и мы соответственно ничего не можем делать. Так как компьютер у нас сейчас много задачный, процессор многозадачный, операционная система многозадачная, мы можем запускать какие-то процессы в фоновом режиме. Для того, чтобы это сделать необходимо набрать команду и в конце поставить знак амперсанда "". Т.е. мы получим следующее sleep 1000.

-3

Как, только мы написали команду плюс амперсанд и нажали Enter. Мы видим появился один процесс, и он бежит в фоновом режиме. Есть такая команда jobs, она показывает выполняющиеся задачи, бегущие процессы.

-4

И вот мы видим, что у нас есть одна выполняющаяся задача sleep на 1000 секунд. Мы можем еще запустить один sleep 999. Практического эффекта нету, данный пример необходим для наглядности процессов. Появился еще один процесс с отличным от прошлого id.

-5

Итого у нас 2 процесса. Теперь представим, что нам необходимо поработать с сервером, но в настоящий момент необходимо обновить, например, репозиторий или пакеты. Мы запускаем процесс обновления с амперсандом и продолжаем работу в обычном режиме, консоль стандартного вывода у нас свободна. Но если нам необходимо вернутся к процессу, который бежит в фоне. Мы можем использовать команду fg и номер процесса, например, 1 или 2. Так же сданной командой мы можем использовать PID, т.е. уникальный идентификатор процесса.

-6

Таким образом мы можем видеть, что мы оказались внутри указанного процесса. Для выхода нажимаем ctrl+z. И теперь данная задача будет остановлена. В чем можно убедится, используя команду job. И соответственно, чтобы запустить процесс используем команду bg процесса.

-7

Небольшой итог: Есть команда, показывающая процессы jobs. И команды fg и bg, которые позволяют отправить процессы в фоновый режим и вернуть обратно.