сервіс та systemctl сценарії - якими користуватися


24

У Fedora у нас є сценарії 'systemctl' та 'service'. Здається, що служба внутрішньо телефонує systemctl. То який правильний / правильний спосіб Fedora запускати або зупиняти послуги - через systemctlабо через serviceоб'єкт? Можливо, варто пам’ятати про нюанси?


3
Користувач Debian, тому не може відповісти напевно, але service foo startв debian працює, чи ваша система init системна, або sysvinit чи upstart; systemctlшвидше за все, не буде працювати, якщо systemd не є PID1.
Шадур

Відповіді:


14

Використовується спосіб зупинки / запуску послуг у Fedora (пізніші версії) systemctl.

Однак може залишитися кілька служб, в /etc/init.d/яких ви могли керувати serviceкомандою. Ви все одно можете керувати ними, systemctlоскільки systemdавтоматично відображає їх для одиничних файлів.

Наприклад, у моєму CentOS 7 (Fedora 19 або thereabouts) є /etc/rc.d/init.d/networkсценарій, яким я міг керувати за допомогою serviceкоманди. Якщо я використовую systemctlзамість цього, він все одно працює:

# sudo systemctl status network
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: active (exited) since Tue 2014-11-11 08:21:51 GMT; 2 weeks 1 days ago

Як ви можете бачити, він був зіставлений з /etc/rc.d/init.d/networkдопомогою systemdі в systemctlконтрольних наказують.

Я можу бути таким "минулим роком" і використовувати serviceзамість цього:

# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0 tun0

Обидва працюють, але зауважте, що вони дають різні результати в своїх statusкомандах.


10

Зазвичай так буває, що serviceскрипти переадресовуються до скриптів systemctl (Systemd), тому в основному це ваші уподобання, які ви хочете використовувати.

Приклад

З моєї системи Fedora 20.

$ service sshd status
Redirecting to /bin/systemctl status  sshd.service
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since Fri 2014-11-21 09:12:10 EST; 5 days ago
 Main PID: 1095 (sshd)
   CGroup: /system.slice/sshd.service
           └─1095 /usr/sbin/sshd -D

Nov 21 09:12:10 dufresne systemd[1]: Starting OpenSSH server daemon...
Nov 21 09:12:10 dufresne systemd[1]: Started OpenSSH server daemon.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on 0.0.0.0 port 22.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on :: port 22.

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

Також Systemd приносить усе, що ви раніше робили з однією командою chkconfigі serviceпід якою systemctl, тому я, як правило, вважаю, що з цим простіше впоратися в довгостроковій перспективі.

Цей чіт-лист на веб-сайті проекту Fedora корисний для переключення.

   ss1

До речі, відповідь на ваше первісне запитання відповідає у виносці на цій сторінці:

Зауважте, що всі / sbin / service та / sbin / chkconfig рядки, перелічені вище, продовжують працювати в systemd і будуть перераховані у натурні еквіваленти за необхідності. Єдиний виняток - chkconfig --list.

Список літератури

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.