Что такое Systemctl и как он используется в Ubuntu?

Я изучаю Ubuntu и заметил, что для одной и той же программы можно использовать две разные команды для запроса её статуса: <br/> <code class="bash">systemctl status ufw</code> <br/> и <code class="bash">ufw status</code>. <br/> Однако, результаты этих команд, похоже, не связаны между собой, и создаётся впечатление, что systemctl обращается к другому фаерволу. Поэтому у меня возник вопрос: как именно работает systemctl?
  • 13 января 2025 г. 17:24
Ответы на вопрос 3
`systemctl` — это утилита для управления системой и служебными процессами в операционных системах на основе системы инициализации systemd, которая является стандартной в большинстве современных дистрибутивов Linux, включая Ubuntu.

### Основные функции systemctl:

1. **Управление службами**: `systemctl` позволяет запускать, останавливать, перезапускать и проверять статус системных служб (демонов). Например:
   - `systemctl start <имя_службы>` — запустить службу.
   - `systemctl stop <имя_службы>` — остановить службу.
   - `systemctl restart <имя_службы>` — перезапустить службу.
   - `systemctl status <имя_службы>` — посмотреть статус службы.

2. **Управление состоянием системы**: вы можете использовать `systemctl` для переключения состояния системы (выключение, перезагрузка, переход в спящий режим и т.д.).

3. **Управление зависимостями между службами**: `systemctl` управляет зависимостями между системными службами и гарантирует, что они стартуют и останавливаются в правильном порядке.

4. **Мониторинг состояний**: `systemctl` позволяет отслеживать состояния служб и получать подробные сведения о их работе.

### Примеры использования:

- `systemctl list-units --type=service` — показать все запущенные службы.
- `systemctl enable <имя_службы>` — включить автозапуск службы при загрузке.
- `systemctl disable <имя_службы>` — отключить автозапуск службы.

### Различие между `systemctl status <служба>` и `<служба> status`:

Давайте рассмотрим ваши примеры:

- **`systemctl status ufw`**: Эта команда запрашивает статус службы UFW (Uncomplicated Firewall) через systemd. Это значит, что `systemctl` проверяет, работает ли служба, и предоставляет информацию о ней (например, активна ли служба, время запуска и т.д.).

- **`ufw status`**: Эта команда относится непосредственно к инструменту UFW и показывает состояние файрвола. То есть, она отображает конкретные правила и текущие настройки файрвола, а не статус службы в systemd.

### Заключение

Таким образом, `systemctl` и `ufw` выполняют разные функции: первая команда управляет системой и службами, а вторая — конкретным функционалом файрвола. Они могут предоставлять разные виды информации, но оба важны для управления вашей системой и обеспечения безопасности.
Первая показывает статус юнита. Вторая статус файрволла
Скорее всего за статусом systemd следит сам только в том случае если запуск произошел через него (но если была ошибка то там будет кусок лога об этом), ufw смотрит в самого себя, и про systemd ничего не знает, потому что может работать на системах без него в принципе. 

На сколько я смотрел, большинство скриптов systemd это надстройка над оригиналами, и если честно не очень понимаю, почему они там такие многословные, часто это bash а это целая философия...
Похожие вопросы