Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

5.4. Керування послугами


Калі використовує systemd як його система ініціалізації, яка не тільки відповідає за послідовність завантаження, але й постійно діє як повнофункціональний менеджер служб, служби запуску та моніторингу.

systemd можна запитувати та керувати за допомогою systemctl. Без будь-яких аргументів він запускає блоки списку systemctl команда, яка виводить список активних одиниць. Якщо ви біжите статус systemctl, результат показує ієрархічний огляд запущених служб. Порівнюючи обидва виходи, ви відразу бачите, що існує кілька видів одиниць і що служби є лише одним із них.

Кожна послуга представлена ​​а підрозділ обслуговування, який описується службовим файлом, який зазвичай поставляється

/lib/systemd/system/ (або /run/systemd/system/, або /etc/systemd/system/; вони перераховані в порядку збільшення важливості, і виграє останній). Кожен, можливо, змінений іншим назва послуги.service.d/*.conf файли в тому самому наборі каталогів. Ці одиничні файли є звичайними текстовими файлами, формат яких натхненний добре відомими файлами «*.ini» Microsoft Windows, з ключ

= значення пари, згруповані між [розділ] заголовки. Тут ми бачимо зразок службового файлу для /lib/ systemd/system/ssh.service:


[Одиниця]

Опис=Сервер безпечної оболонки OpenBSD Після=network.target auditd.service ConditionPathExists=!/etc/ssh/sshd_not_to_be_run


[Сервіс]

EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=процес

Перезапуск=у разі відмови RestartPreventExitStatus=255 Тип=повідомити


[Встановити]

WantedBy=multi-user.target Псевдонім=sshd.service

[Одиниця]

Опис=Сервер безпечної оболонки OpenBSD Після=network.target auditd.service ConditionPathExists=!/etc/ssh/sshd_not_to_be_run


[Сервіс]

EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=процес

Перезапуск=у разі відмови RestartPreventExitStatus=255 Тип=повідомити


[Встановити]

WantedBy=multi-user.target Псевдонім=sshd.service


Цільові одиниці є ще однією частиною дизайну systemd. Вони представляють потрібний стан, якого ви хочете досягти з точки зору активованих одиниць (що означає запущену послугу у випадку одиниць обслуговування). Вони існують переважно як спосіб групування залежностей від інших одиниць. Коли система запускається, вона дозволяє одиницям, які необхідні для досягнення default.target (що є символічним посиланням на графічний.ціль, а який, у свою чергу, залежить від багатокористувацький.ціль). Тому всі залежності цих цілей активуються під час завантаження.

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

залежна одиниця в / і т.д. / systemd / system /цільове ім'я.target.wants/ каталог. І це саме те, що systemctl увімкнути foo.service робить. Коли ви вмикаєте службу, ви наказуєте systemd додати залежність від цілей, перерахованих у WantedBy запис про [Встановити] розділ файлу сервісного блоку. І навпаки, systemctl вимкнути foo.service скидає те саме символічне посилання і, таким чином, залежність.

Команда включіть та забороняти команди нічого не змінюють щодо поточного стану служб. Вони впливають лише на те, що станеться при наступному завантаженні. Якщо ви хочете негайно запустити службу, ви повинні виконати запуск systemctl foo.service. І навпаки, ви можете зупинити це за допомогою зупинка systemctl foo.service. Ви також можете перевірити поточний статус служби за допомогою статус systemctl foo.service, який корисно включає останні рядки пов’язаного журналу. Після зміни конфігурації служби ви можете перезавантажити її або перезапустити: ці операції виконуються за допомогою перезавантаження systemctl foo.service та перезавантаження systemctl foo обслуговування відповідно.


зображення

# systemctl статус postgresql

● postgresql.service - СУБД PostgreSQL

Завантажено: завантажено (/lib/systemd/system/postgresql.service; вимкнено; попередні налаштування постачальника:

інвалідів)

Активний: неактивний (мертвий)

# ls -al /etc/systemd/system/multi-user.target.wants/postgresql.service

ls: не вдається отримати доступ до '/etc/systemd/system/multi-user.target.wants/postgresql.service': ні

такий файл або каталог

# systemctl включити postgresql

[...]

# ls -al /etc/systemd/system/multi-user.target.wants/postgresql.service

lrwxrwxrwx 1 root root 38 квітня 21 16:21 /etc/systemd/system/multi-user.target.wants/

postgresql.service -> /lib/systemd/system/postgresql.service

# systemctl статус postgresql

● postgresql.service - СУБД PostgreSQL

Завантажено: завантажено (/lib/systemd/system/postgresql.service; увімкнено; попередні налаштування постачальника:

інвалідів)

Активний: неактивний (мертвий)

# systemctl почати postgresql

# systemctl статус postgresql

● postgresql.service - СУБД PostgreSQL

Завантажено: завантажено (/lib/systemd/system/postgresql.service; увімкнено; попередні налаштування постачальника:

інвалідів)

Активний: активний (вийшов) із чт 2016-04-21 16:22:29 EDT; 2 секунди тому Процес: 6355 ExecStart=/bin/true (код=вийшов, статус=0/УСПІХ)

Основний PID: 6355 (код=вийшов, статус=0/УСПІХ)


21 квітня 16:22:29 kali-rolling systemd[1]: запуск РСУБД PostgreSQL... 21 квітня 16:22:29 kali-rolling systemd[1]: запуск РСУБД PostgreSQL.

Найпопулярніші хмарні обчислення ОС на OnWorks: