Почему команда /etc/init.d/cron status в Ubuntu запускает systemctl status cron?

Как работает система инициализации в Ubuntu 22.04 Desktop, основанной на systemd? Почему при запуске `/etc/init.d/cron status` вызывается `systemctl status cron`, хотя в файле cron нет непосредственного вызова systemctl? И какие каталоги, такие как `/etc/rc*` и `/etc/init*`, участвуют в процессе инициализации при использовании systemd на современных дистрибутивах Linux?
  • 13 апреля 2024 г. 9:19
Ответы на вопрос 2
В современных дистрибутивах Linux, в том числе и в Ubuntu 22.04 Desktop, используется система инициализации Systemd. Systemd заменил более старую систему SysVinit и стал стандартом для многих дистрибутивов.

Systemd управляет процессами и службами в системе, включая запуск, остановку, мониторинг и управление жизненным циклом служб. В Systemd для управления службами используется команда systemctl, которая предоставляет различные операции, такие как запуск, остановка, перезапуск, проверка статуса и т. д.

При вызове команды `/etc/init.d/cron status` Systemd в Ubuntu видит старый синтаксис и автоматически перенаправляет этот запрос на команду `systemctl status cron`. Это делается для обеспечения совместимости со старым синтаксисом и облегчения использования новой системы инициализации.

Каталоги `/etc/rc*` и `/etc/init*` больше не используются в Systemd. Вместо этого конфигурационные файлы служб хранятся в специальных файлах .service в каталоге `/lib/systemd/system/` или `/etc/systemd/system/`. Systemd автоматически использует эти файлы для управления службами. Это новый подход к настройке и управлению службами в системе, которые являются более гощими и расширяемыми, чем старые методы, используемые в SysVinit.
1. Потому что, как следует из содержимого /etc/init.d/cron , он перед началом выполнения импортирует скрипт /lib/lsb/init-functions , который в свою очередь подгружает себе хуки из /lib/lsb/init-functions.d/ , в том числе хук, отвечающий за передачу обработки параметров запуска скрипта в сторону systemd. 
2. Участвуют, поскольку systemd поддерживает их для обратной совместимости. Вот насколько полно реализовано их участие - сказать не берусь, не копал. Но какое-то время они наверняка ещё будут поддерживаться в том или ином объёме, пока init.d/rc.d не устареет окончательно и фичу не переведут из depricated в removed.
Похожие вопросы