Що таке еквівалент systemctl


30

Я перетворюю пакет з .rpm в .deb, використовуючи цей підручник . Однак для тестування та налагодження програми мені потрібно запустити її. Програма readme пояснює, як запустити його як послугу з:

systemctl enable progname.service
systemctl start progname.service

Який еквівалент ubuntu для цих команд?


sudo service network-manager restart це те, що я шукав, коли знайшов це.
Мартін Тома

Станом на 2018 рік, Ubuntu використовує новіший systemd systemctl(як і будь-яка система вище Ubuntu 15.04, Debian 8, CentOS 7, Fedora 15 ...). Стара /usr/sbin/serviceутиліта викликає, systemctlякщо / коли система працює systemd.
Майкл

Відповіді:


12

В даний час Ubuntu планує / розробляє для використання systemd у майбутньому. Інформацію див. За наступними посиланнями: Vivid перейде до завантаження із системою ... та Примітки до випуску: Управління завантаженням та сервісом

Я використовую 14.04.

Можна використовувати більш рідну команду update-rc.d. Перевірте сторінку чоловіка.

Увімкнення послуги за замовчуванням (див. Довідкову сторінку):

sudo update-rc.d foo_service defaults

Відключення послуги:

sudo update-rc.d foo_service remove

Зауважте, що для видалення без повідомлення про помилку файл foo_service не повинен бути присутнім. Однак ви можете змусити:

sudo update-rc.d -f foo_service remove

4
Там немає , може бути , про це. 15.04 використовує systemd.
муру

@muru Dou у вас є посилання, будь ласка? Будь ласка, відредагуйте мою відповідь та повідомте людей.
Елі

1
публікація, що оголошує про перемикання під час розробки: list.ubuntu.com/archives/ubuntu-devel-announce/2015-March/… , примітки до випуску остаточного випуску: wiki.ubuntu.com/VividVervet/…
muru

5

systemctl - це утиліта управління для systemd:

http://www.freedesktop.org/software/systemd/man/systemctl.html

Зауважте, що Ubuntu не використовує systemd, він використовує upstart, який робить у принципі кілька одних і тих же речей, але має деякі різні поняття.

Без особливих знань про systemd і на основі того, що я прочитав у документі, який я опублікував, я думаю, що вам не потрібно «включати» послугу. Просто випавши .conf файл для вашої служби в / etc / init, це повинно знати про це.

В цьому і полягає суть справи: системний конфігураційний файл для вашої служби не працюватиме незмінним на Ubuntu, вам доведеться "перевести" його в еквівалентну версію для Upstart. Ось документація для запуску:

http://upstart.ubuntu.com/cookbook/

Як тільки у вас є відповідний файл .start upstart .conf, ви можете запустити послугу (еквівалентну, я думаю, до запуску systemctl), використовуючи:

start your-service

2
Біда в тому, починаючи з 13.10, Ubuntu робить logind використовувати Systemd, яка за замовчуванням призупиняє ноутбук , коли кришка закрита. Якщо ви хочете, щоб він заблокував екран, перш ніж це станеться, вам потрібно повісити системну службу на закриття кришки, і зробити це вам, здається, потрібно systemctl. Дивіться, наприклад, форум.xfce.org/viewtopic.php? id = 8411 та bbs.archlinux.org/viewtopic.php?id=148829 .
Дуглас Бенгалл

5

Пакет за замовчуванням на 14.04 - це systemd-servicesте, що не передбачено systemdctlкоманди.

Прочитайте

Ви повинні прочитати статтю Як встановити та протестувати Systemd на Ubuntu 14.04, надійний Tahr та Ubuntu 12.04 Precision Pangolin, якщо ви хочете використовувати systemd.

Pitti PPA

Є PPA, ppa:pitti/systemdякий забезпечує відповідний пакет для LTS 12.04, 14.04 та майбутнього.

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