Управління службами linux

В операційній системі linux, так само як і в Windows, крім звичайних програм, які можуть взаємодіяти з користувачем є ще один вид програм. Це що працюють у фоновому режимі служби. Важливість служб важко переоцінити, вони стежать за станом системи, забезпечують автоматичне підключення зовнішніх пристроїв і мережі, дозволяють процесам взаємодіяти з обладнанням (dbus), а також у вигляді служб реалізовані різні веб-сервери і сервери баз даних. На відміну від призначених для користувача програм, служби виконуються у фоновому режимі, і користувач не має до них прямого доступу. Користувач ще не увійшов в систему, тільки почалося завантаження а основні служби вже запущені і працюють.

Відео: LPIC 110.2 частина друга. Управління мережевими демонами

У цій статті ми розглянемо управління службами Linux. Ми не будемо чіпати вже застарілі системи, такі як SysVinit, зосередимося тільки на Systemd. Ви дізнаєтеся, як подивитися запущені служби linux, а також зупиняти і запускати їх самому.

трохи теорії

Щоб всім цим керувати потрібна основна служба - система ініціалізації, яка буде запускати служби linux в потрібний момент, стежити щоб вони нормально працювали, записувати повідомлення логів, і найголовніше дозволяти зупиняти служби. Раніше, для управління службами використовувалися скрипти. Я вже говорив, що можна запустити службу з терміналу, так ось, кожна служба запускалася у фоновому режимі одна за одною, без можливості паралельного запуску і повертала свій PID процесу скрипту ініціалізації, він зберігався і потім за допомогою цього PID можна було перевірити чи працює служба і зупинити службу linux якщо це потрібно. Все це можна зробити і вручну.

Але потім на зміну цьому методу прийшла нова модель і система ініціалізації systemd. Система ініціалізації запускається відразу після завантаження ядра і починає форматувати служби, тепер з`явилася можливість паралельної ініціалізації, а також залежностей між службами. Таким чином, тепер можна визначити складне дерево порядку запуску служб. Але ми не будемо вникати в подробиці створення служб, нас цікавить тільки сам процес запуску. Після запуску systemd збирає весь висновок служби в лог, і стежить за її роботою, якщо служба аварійно завершилася, то автоматично її перезапускає.

Служба в Systemd описується файлом юніта, в ньому описано що з нею потрібно робити і як себе вести. Існують такі типи служб:

  • service - звичайна служба, програма
  • target - група служб
  • automount - точка автоматичного монтування
  • device - файл пристрою, генерується на етапі завантаження
  • mount - точка монтування
  • path - файл або папка
  • scope - процес
  • slice - група системних служб systemd
  • snapshot - збережений стан запущених служб
  • socket - сокет для взаємодії між процесами.

Нас будуть цікавити тільки service, і зовсім небагато target, але ми розглянули всі інші, щоб ви змогли поглянути на картину трохи ширше. Основи розглянули, тепер буде настройка служб LInux.

Відео: Управління ІТ-службою компанії і організація роботи Service Desk

утиліта systemctl

У Systemd є спеціальний інструмент для управління службами в Linux - systemctl. Ця утиліта дозволяє робити дуже багато речей, починаючи від перезапуску служби linux і перевірки її стану, до аналізу ефективності завантаження служби. Синтаксис у утиліти такої:

Відео: Написання демона, частина перша. Створення скрипта для демонізації

$ systemctl опції команда служба служба ...




Опції налаштовують поведінка програми, подробиця виведення, команда - вказує що потрібно зробити зі службою, а служба, це та сама служба, якій ми збираємося керувати. У деяких випадках утиліта може використовуватися без вказівки команди і служби.

Розглянемо все по порядку. Опції дуже сильно залежать від команд, тому розглянемо їх пізніше, а поки пройдемося по командах:

  • list-units - подивитися всі служби (юніти), аналог опції -t
  • list-sockets - подивитися всі служби сокетов
  • start - запустити службу linux
  • stop - зупинити службу linux
  • reload - оновити конфігурацію служби з файлу юніта
  • restart - перезапустити службу
  • try-restart - перезапустити службу, тільки якщо вона запущена
  • reload-or-restart - оновити конфігурацію потім виконати перезапуск служби linux, якщо не підтримується - тільки перезапустити
  • isolate - запустити тільки одну службу разом з її залежностями, всі інші зупинити
  • kill - відправити сигнал завершення процесу використовується разом з опціями --signal і --kill-who
  • is-active - перевірити чи запущена служба linux
  • is-failed - перевірити не завершилася служба з помилкою
  • status - подивитися стан і висновок служби
  • show - подивитися параметри управління службою в Linux
  • reset-failed - перезапустити служби linux, що завершилися з помилкою
  • list-dependencies - подивитися залежності служби linux
  • list-unit-files - вивести всі встановлені файли служб
  • enable - позначити послугу як автозагрузку
  • disable - видалити службу з автозавантаження
  • is-enabled - перевірити чи є вже служба в автозавантаженні
  • reenable - спочатку виконати disable потім enable для служби
  • list-jobs - всі запущені служби linux незалежно від типу
  • snapsot - зберегти стан служб, щоб потім відновити
  • daemon-reload - оновити конфігурацію всіх служб
  • mask - зробити юніт недоступним
  • unmask - повернути файл служби linux

А тепер основні опції:

  • -t, --type - тип служб для виведення
  • -a, --all - показати всі відомі служби, навіть не запущені
  • -q - мінімальний висновок
  • --version - версія програми
  • --no-pager - не використовувати посторінкову навігацію
  • --no-legend - не виводити докладний опис
  • -f - примусове виконання команди
  • --runtime - Ніколи не зберігати внесені зміни після перезавантаження
  • -n - кількість рядків виводу балки для команди status
  • --plain - використовувати звичайний текстовий режим замість дерев
  • --kill-who - задати процес, якому потрібно відправити сигнал
  • --signal - сигнал, який потрібно відправити.
  • --state - відфільтрувати список служб станом.

Як бачите, опції будуть мало корисні і краще звернути більше уваги на команди, за допомогою них виконуються всі дії.

Управління службами Linux

Тепер, коли ви вже знаєте все основи, команди і параметри можна переходити до справи. З усіма іншими тонкощами розберемося по шляху. Спочатку давайте подивимося запущені служби linux. Нас будуть цікавити тільки програми, а не всі ці додаткові компоненти, тому скористаємося опцією type:

$ Systemctl list-units --type service -all


services1

Дальше більше. Ви можете відсортувати список служб systemctl станом. Наприклад, тільки виконуються:

$ Systemctl list-units --type service --state failed

service4

Для фільтрації можна брати будь-який показник стану з будь-якої колонки. Інший командою ми можемо подивитися всі файли конфігурації служб на диску. Тут не будемо фільтрувати по типу, нехай програма покаже всі:

$ Systemctl list-unit-files --type service

Тут ви можете використовувати фільтри станом. Тепер ви знаєте як подивитися запущені служби linux, йдемо далі.

Щоб запустити службу використовується команда start, наприклад:

$ Sudo systemctl stop application

Подивитися стан служби дозволяє команда status:

$ Systemctl list-unit-files --state enabled

services5

services6

Всі служби, що запускаються за замовчуванням. Можете також подивитися служби static. Щоб додати службу в автозавантаження linux використовуйте команду enable:

$ Sudo systemctl disable applciation

services8

Також, ви можете подивитися чи дозволено зараз автозагрзука для служби:

Поділися в соціальних мережах:

Схожі
Автозавантаження в linux mint 17Автозавантаження в linux mint 17
Команда sc - управління службами.Команда sc - управління службами.
Права доступу до файлів в linuxПрава доступу до файлів в linux
Служби windows vista. Опис і настройкаСлужби windows vista. Опис і настройка
5 Міфів про контейнерах linux5 Міфів про контейнерах linux
Налаштування selinuxНалаштування selinux
Служби в windows xp. Відключаємо невикористовувані службиСлужби в windows xp. Відключаємо невикористовувані служби
Служби windows. Які служби можна відключити для прискорення роботи системи?Служби windows. Які служби можна відключити для прискорення роботи системи?
Мтчелл м. - програмування для linux. Професійний підхідМтчелл м. - програмування для linux. Професійний підхід
Як підвищити захищеність комп`ютера, відключивши 10 служб windows xpЯк підвищити захищеність комп`ютера, відключивши 10 служб windows xp
» » Управління службами linux