Linux Labs

Первые шаги / Ступень 1 из 15

Как устроена Linux и что происходит в терминале

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 4 из 8 · на машине · 4 мин

Программа, процесс и служба

Кроме твоих команд, на машине всё время работают другие программы: их запустили без тебя. В этом шаге — кто их запускает и чем программа отличается от процесса.

Программа — файл на диске: uname, например, лежит в /usr/bin/uname. Пока её не запустили, она ничего не делает. Запущенная программа — процесс: у него есть номер, своя память и время работы. Одна программа может работать в нескольких процессах сразу.

Процесс uname живёт доли секунды: напечатал выпуск ядра и завершился. Оболочка — тоже процесс, и он работает, пока открыт терминал. Процессы своего терминала показывает ps:

bash
ps

В списке будет оболочка bash и сам ps: пока он печатал список, он тоже работал.

Остальные процессы запустились при загрузке машины, без тебя. Многие из них — службы: программы, которые работают в фоне и ждут работы, например запросов к сайту. Службами управляет systemd: запускает их при загрузке, перезапускает после сбоя, останавливает по команде. Терминал службе не нужен.

bash
systemctl is-active nginx

nginx — веб-сервер этой машины. Вывод active значит, что служба работает.

Проверь себя 1 вопрос

systemctl is-active nginx напечатал active. Ты закрываешь вкладку с терминалом. Что будет с сайтом?

  • Вход в систему службу не трогает: systemd запустил её при загрузке машины, и она работает, вошёл ты или нет. После входа systemctl is-active nginx печатает active сразу.

  • nginx запустил systemd при загрузке, терминал к этому не причастен. Открой терминал снова — systemctl is-active nginx напечатает active.

  • Службу запускает systemd, твоя оболочка её не запускала. С оболочкой завершаются программы, которые ещё работают в этом терминале.

Службу nginx запустил systemd при загрузке, и терминал ей не нужен: сайт работает, даже когда никто не вошёл. Остановить её могут команда systemd или сбой — проверяют это той же systemctl is-active nginx.

Главное в шаге

  • Программа — файл на диске, процесс — её запущенный экземпляр со своим номером.
  • Служба работает в фоне без терминала, запускает и останавливает её systemd.
Ubuntu 24.04
Загрузка…