Что такое systemctl эквивалент

30

Я конвертирую пакет из .rpm в .deb, используя это руководство . Однако для тестирования и отладки приложения мне нужно его запустить. Программа readme объясняет, как запустить ее как сервис с:

systemctl enable progname.service
systemctl start progname.service

Что эквивалентно в Ubuntu для этих команд?

Marnaw
источник
sudo service network-manager restart это то, что я искал, когда нашел это.
Мартин Тома
Начиная с 2018 года, Ubuntu использует более новую систему systemd systemctl(как и любая другая система выше Ubuntu 15.04, Debian 8, CentOS 7, Fedora 15 ...). Старая /usr/sbin/serviceутилита вызывает systemctlif / когда система работает под управлением systemd.
Майкл

Ответы:

12

Ubuntu в настоящее время планирует / разрабатывает использование systemd в будущем. Для получения дополнительной информации см. Следующие ссылки: Vivid переключится на загрузку с помощью systemd ... и Примечания к выпуску: Управление загрузкой и службами

Я использую 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
Ely
источник
4
Там нет, может быть, об этом. 15.04 использует systemd.
Муру
@ Муру У вас есть ссылка, пожалуйста? Пожалуйста, не стесняйтесь редактировать мой ответ и дайте людям знать.
Ely
1
сообщение о переходе во время разработки: lists.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, вы должны знать об этом upstart.

Но в этом суть вопроса: файл конфигурации systemd для вашего сервиса не будет работать без изменений в Ubuntu, вам придется «перевести» его в эквивалентную версию для Upstart. Вот документация для выскочки:

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

Как только у вас будет подходящий выскаточный файл .conf, вы можете запустить службу (я думаю, эквивалентную запуску systemctl), используя:

start your-service
roadmr
источник
2
Беда в том, начиная с 13.10, Ubuntu делает logind использовать Systemd, которая по умолчанию приостанавливает ноутбук , когда крышка закрыта. Если вы хотите, чтобы экран блокировался до того, как это произойдет, вам нужно повесить службу systemd на крышку крышки и сделать то, что вам, кажется, нужно systemctl. См. Например, forum.xfce.org/viewtopic.php?id=8411 и bbs.archlinux.org/viewtopic.php?id=148829 .
Дуглас Баньялл
5

Пакет по умолчанию на 14.04 - это systemd-servicesто, что не предоставляет systemdctlкоманду.

Читать

Вы должны прочитать статью Как установить и протестировать Systemd в Ubuntu 14.04 Trusty Tahr и Ubuntu 12.04 Precise Pangolin, если хотите использовать systemd.

Питти ППА

Существует PPA, ppa:pitti/systemdкоторый обеспечивает адекватный пакет для LTS 12.04, 14.04 и последующих.

Эдуард Лопес
источник