Alias= и Also= в секции [Install]
Alias= задаёт второе имя, по которому можно обращаться к unit после включения. Also= перечисляет unit, которые будут включены вместе с этим.
Что делает
Дополнительное имя создаётся как символическая ссылка при включении и работает во всех командах: systemctl start второе-имя эквивалентно обращению к основному. Так дистрибутивы дают привычные имена: ssh.service и sshd.service.
Also= избавляет от необходимости помнить про связанные unit: включая службу, вы включаете и её сокет или таймер.
Где ставится. Только в секции [Install]. Расширение в имени обязательно и должно совпадать с типом unit.
Значения
| Значение | Что происходит |
|---|---|
Alias=sshd.service | второе имя для той же службы. |
Also=myapp.socket | сокет включится вместе со службой. |
Пример
Служба с сокетом, которые включаются вместе.
[Install]
WantedBy=multi-user.target
Also=myapp.socket
Alias=myapplication.service
Типичные ошибки
Дополнительное имя появляется только после включения: до этого обращаться по нему нельзя.
Расширение в имени обязано совпадать: Alias=myapp без расширения не сработает.
Also= не гарантирует порядок запуска — это про включение, а не про зависимости.
Связанные ошибки
- Unit … has no installation config: не включается автозапускsystemctl enable отказывает: в unit-файле нет секции [Install] или WantedBy. Как включить службу в автозапуск правильно.
- Сокет и служба включены одновременно: конфликт при загрузкеПри сокет-активации в автозапуск включена и служба, и сокет. Порт занимает то, что стартовало первым.
Рядом стоящие параметры
Где важен на практике
Источники
- systemd.unit(5)
- Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)