systemd
дает нам systemctl
набор команд, который в основном используется для запуска служб во время загрузки. Мы также можем запускать, останавливать, перезагружать, перезапускать и проверять состояние служб с помощью systemctl
.
Мы можем сделать, например, sudo systemctl enable service_name
и service_name
будет автоматически запускаться во время загрузки. Мы также можем отключить службы, чтобы они не запускались во время загрузки.
Единственная разница между командами service
и и может использоваться для включения запуска служб во время выполнения? Можем ли мы использовать на любом сервисе? Какие еще существенные различия есть?systemctl
systemctl
systemctl
command-line
services
systemd
luv.preet
источник
источник
Ответы:
Эта
service
команда представляет собой скрипт-обертку, который позволяет системным администраторам запускать, останавливать и проверять состояние служб, не слишком заботясь об используемой системе инициализации. До введения systemd это была оболочка для/etc/init.d
сценариев и команды Upstartinitctl
, а теперь это оболочка и для этих двух, и для нихsystemctl
.Используйте источник, Люк!
Это проверяет на выскочку:
Если это не сработает, он ищет systemd:
И если это тоже не помогает, то возвращается к
/etc/init.d
сценариям System V :Поскольку
service
команда представляет собой довольно простую оболочку, она поддерживает только ограниченный набор действий по сравнению с тем, что может обеспечить действительная система инициализации.Для переносимости между различными версиями Ubuntu пользователи могут надежно использовать
service
команду для запуска, остановки, перезапуска или проверки состояния службы. Для более сложных задач, однако реальная команда используется, будь тоinitctl
илиsystemctl
или/etc/init.d
сценарий , возможно , придется использовать напрямую.Кроме того, будучи оболочкой,
service
скрипт в некоторых случаях также делает больше, чем может сделать прямая эквивалентная команда. Например:/etc/init.d
скрипты в чистой среде. (Обратите внимание на длинныйenv
вызов команды вrun_via_sysvinit
функции выше.)restart
системах Upstart он сопоставляется с комбинациейstop
/start
, так как обычнаяinitctl restart
ошибка выдаст ошибку, если служба еще не запущена.Он останавливает сокеты при остановке системных служб, которые имеют связанные сокеты:
Службы Upstart были включены непосредственно в файле конфигурации службы (или отключены с помощью переопределений), а сценарии System V были включены или отключены с помощью
update-rc.d
команды (которая управляла символическими ссылками в/etc/rc*
каталогах), поэтомуservice
команда никогда не использовалась для включения или отключения служб при загрузке. ,источник
Есть гораздо больше того, на что вы упомянули, на что
systemctl
способны.systemd
работает с юнитами, есть разные типы юнитов: цели, сервисы, сокеты и т. д. цели имеют ту же концепцию, что и уровни выполнения, они представляют собой кучу юнитов.Вы можете использовать,
systemctl
чтобы установить или получить системную цель по умолчанию.Вы можете перейти к другим целям:
Другие цели: многопользовательская, графическая, повторная, аварийная, перезагрузка, отключение питания.
Как вы сказали, вы можете использовать
systemctl
для управления службами некоторые другие команды, связанные с управлением службами, о которых мне известно:Вы можете использовать его, чтобы узнать о статусе услуги:
Вы можете замаскировать или снять маску на сервисе:
Когда вы маскируете сервис, к которому он будет привязан
/dev/null
, другие или другие сервисы не смогут активировать / включить его вручную или автоматически. (вы должны сначала разоблачить его).Другое использование systemctl - перечисление модулей:
Какой список всех видов единиц, загруженных и активных.
Список сервисных единиц:
Или перечислить все доступные юниты, а не только загруженные и активированные:
Вы можете создавать псевдонимы или даже управлять удаленными машинами
С другой стороны,
service
делает то, что должен, управляет услугами и не имеет ничего общего с бизнесом других людей;)источник
service
может сделать, но нетsystemctl
?service start
попыток. Pre-systemdservice start
позволил бы мне сразу понять, почему мой сервис не запускается. Постсистемный, я должен посмотреть четыре или пять различных журналов, прежде чем я могу найти его. Все, что сказано, мой комментарий, несомненно, не по теме и, вероятно, будет удален.service
команде, разве это не было частью вопроса?