Есть некоторые недостатки хранения обычные файлы в /etc/системд/система
, не из-за самого systemd, а потому что systemctl
проживает в этом месте. Размещение обычных файлов в этом каталоге нарушит некоторые функции systemctl, в данном случае способность маскировать ваш .service, и нет оснований полагать, что другие приложения будут обрабатывать это по-другому. Теперь в systemd есть предопределенный набор пути поиска юнитов, большинство из которых озабочены распределение, это делает места, где вы можете разместить свой .service, в основном ограниченным (или, по крайней мере, до тех пор, пока это не будет решено):
/usr/локальные/библиотеки/systemd/система
Это работает исключительно хорошо и без потери функциональности:
# cp -a hello-world.service /usr/local/lib/systemd/system
'hello-world.service' -> '/usr/local/lib/systemd/system/hello-world.service'
# системная перезагрузка демона
# dpkg -i привет-мир_1.0-1_all.deb
Выбор ранее невыбранного пакета hello-world.
(Чтение базы данных... На данный момент установлено 396452 файла и каталога.)
Подготовка к распаковке hello-world_1.0-1_all.deb...
Распаковка hello-world (1.0)...
Настройка hello-world (1.0)...
Создал символическую ссылку /etc/systemd/system/multi-user.target.wants/hello-world.service ‒ /usr/local/lib/systemd/system/hello-world.service.
# маска systemctl hello-world
Создал символическую ссылку /etc/systemd/system/hello-world.service — /dev/null.
тот же хронологический порядок применяется и к дроп-инам, где /и т.д
иметь приоритет над /бег
которые, в свою очередь, имеют приоритет над /библиотека
... и так далее, дроп-ины с разными именами будут применяться в лексикографическом порядке независимо от местоположения. Если у вас есть перекрывающиеся директивы, то последняя будет иметь приоритет:
: systemctl кошка привет-мир
# /lib/systemd/system/hello-world.service
[Ед. изм]
Описание=Привет, мир (lib).
[Оказание услуг]
Тип = ваншот
ExecStart=/opt/bin/hello.sh библиотека
[Установить]
WantedBy=многопользовательская.цель
# /usr/local/lib/systemd/system/hello-world.service.d/10-local.conf
[Ед. изм]
Описание=Привет, мир (локальный).
[Оказание услуг]
ExecStart=
ExecStart=/opt/bin/hello.sh локальный
# /etc/systemd/system/hello-world.service.d/override.conf
[Оказание услуг]
ExecStart=
ExecStart=/opt/bin/hello.sh и т. д.
: systemctl запустить привет-мир
28 июня 15:20:24 betazoid systemd[1]: запуск Hello world (local)....
28 июня 15:20:24 betazoid привет[402381]: привет и т.д.
28 июня 15:20:24 betazoid systemd[1]: hello-world.service: успешно.
28 июня 15:20:24 betazoid systemd[1]: завершено Hello world (local)..