Если вы хотите узнать больше о системах инициализации, важно сначала понять команды systemctl и service и их основные различия.
Ключевые выводы
- Команды service и systemctl в Linux очень важны и очень похожи, а systemctl — более универсальная и мощная команда.
- И service, и systemctl позволяют пользователям настраивать системные службы и взаимодействовать с ними, но они относятся к разным системам инициализации (SysVinit и systemd соответственно).
- Сервис работает с системными файлами инициализации в /etc/init.d, тогда как systemctl работает с файлами в /lib/systemd. Знакомство с обеими командами важно для эффективного управления системными службами.
service и systemctl являются жизненно важными и очень похожими командами в Linux. Они настолько похожи, что легко задаться вопросом, какие между ними вообще есть различия, и можно ли использовать эти две команды взаимозаменяемо.
Знание мельчайших подробностей о сервисе и systemctl позволит вам без проблем работать с ними.
Что такое сервисная команда в Linux?
В Linux команда службы представляет собой сценарий-оболочку, который позволяет пользователям легко настраивать системные службы и взаимодействовать с ними. Он предшествует systemd и в основном работает со сценариями, найденными в /etc/init.d.
Несмотря на то, что systemctl превзошла прежнее значение службы, она продолжает оставаться актуальной благодаря многим устаревшим функциям.
Переход между связанными системами инициализации — с SysVinit на systemd — был спорным, но растущие проблемы с функцией исходной системы инициализации сделали его необходимым.
systemd запускает службы параллельно, а не в последовательной последовательности, что ускоряет загрузку по сравнению с SysVinit, а также обеспечивает чуть более сложный контроль над системные демоны через интерфейс командной строки (CLI).
Что такое команда systemctl в Linux?
Подобно сервису, systemctl — невероятно универсальная команда, которая позволяет вам включать, перезагружать, запускать, останавливать и проверять состояние служб работает в вашей системе Linux.
systemctl служит простым в использовании и мощным интерфейсом для настройки файлов в systemd — например, для отключения службы при загрузке с помощью systemctl требуется всего одна-две команды.
systemctl обратно совместим с системой инициализации SysVinit, которая в основном используется со службой. systemctl не является прямым преемником службы, но он гораздо более универсален с точки зрения инструментов, которые он предлагает для управления системными службами.
Вы можете выполнять такие задачи, как маскировка или отключение службы всего за одну или две строки.
Различия между сервисом и systemctl
service и systemctl в основном служат одной и той же цели. Многие сходства между ними были добавлены намеренно, чтобы пользователи могли более плавно переходить от службы к systemctl.
Однако между ними есть несколько различий, о которых вам следует знать, когда вы начинаете работать с системой инициализации в Linux.
1. Различные системы инициализации
Наиболее существенная разница между service и systemctl заключается в том, что они относятся к разным системам инициализации. принадлежит SysVinit (System V Init), также известному как классический процесс инициализации Linux.
systemctl принадлежит systemd, преемнику SysVinit и современному процессу инициализации, используемому во многих системах Linux.
Поскольку service и systemctl являются частью разных процессов инициализации, они работают с системными файлами инициализации в разных каталогах. сервис работает с системными файлами инициализации, найденными в /etc/init.d, тогда как systemctl работает с системными файлами инициализации, найденными в /lib/systemd.
Как правило, система инициализации, с которой вы столкнетесь в готовых установках Linux, — это systemd, поэтому вам следует ознакомиться с использованием systemctl для взаимодействия с ней.
Если вы собираетесь работать с системами, которые предшествуют или совпадают с выпуском systemd в 2010 году, вам также не помешает ознакомиться с использованием команды service.
2. Совместимость
service по-прежнему остается чрезвычайно полезной командой с точки зрения совместимости — как команда-оболочка, она способна перенаправлять к диспетчеру служб, используемому в разных системах. Вы должны запланировать его изучение и сделать частью своего арсенала, если будете работать с различными системами Linux.
3. Базовые функции
Еще одно ключевое различие между systemctl и сервисом заключается в том, как они работают. service — это команда высокого уровня, которая перенаправляет к основному диспетчеру служб, используемому в конкретной системе, что означает, что она довольно универсальна для разных систем. Он может перенаправить на /etc/init.d, upstart или даже на systemctl. Между тем, команды systemctl напрямую взаимодействуют с systemd.
4. Возможности
С точки зрения того, что вы можете сделать, можно с уверенностью сказать, что systemctl намного превосходит службу по мощности. Помимо основных функций, таких как запуск, остановка, включение или отключение определенной службы, вы также можете настроить расширенные конфигурации с помощью systemctl.
service более ограничен из-за его необходимой совместимости с базовыми диспетчерами служб, на которые он опирается.
Эффективная настройка системных служб в Linux
service и systemctl — невероятно важные команды для управления системными службами. Независимо от того, хотите ли вы просто максимально эффективно использовать свою систему Linux или собираетесь работать в корпоративных сетях, жизненно важно ознакомиться с обеими командами.
К счастью, существует множество отличных руководств, которые помогут вам стать мастером использования systemctl и службы в терминале.