Назад | Перейти на главную страницу

Как я могу настроить автоматический запуск службы systemd после запуска службы вручную?

У меня есть сервер с зашифрованной файловой системой, которую необходимо вручную подключить после перезагрузки. Некоторые службы требуют, чтобы зашифрованная файловая система была смонтирована для чтения файлов конфигурации / данных и т. Д.

Есть ли способ сказать systemd что всякий раз, когда служба X запускается (даже вручную), службы Y и X должны запускаться автоматически?

Я знаю, что могу написать это с помощью сценария «запустить все мои вещи», который запускает службу зашифрованной файловой системы (которая на самом деле не является службой; просто сложная команда монтирования), а затем запускает все остальное, что мне нужно, но мне было интересно, если это это то, с чем systemd может справиться самостоятельно.

Итак, если мы назовем вашу службу X, а другую службу, которая должна запускаться автоматически (файловая система), служба Y, следующее должно выполнить работу:

shell# vim /usr/lib/systemd/serviceX.service

#Inside the unit file of service x add the following in the [unit] section:
[Unit]
Requires=serviceY.service

#For multiple services
[Unit]
Requires=serviceY.services serviceZ.services

# Don't forget to relaod systemd
shell# systemctl daemon-reload

Теперь, если вы запустите службу x, служба y (файловая система) должна запуститься автоматически. Кроме того, если есть ошибка службы y, и она не может запустить службу x, она также не запустится. Примечание. Существуют и другие ключевые слова, такие как «после» или «хочет», которые менее строгие, чем «Требует». Но в вашем примере «Требует» должно быть правильным выбором.