Почему мой сервисный блок-файл файл файл, но другие являются каталогом?

Сначала установите переменную, содержащую имя пользователя:

myUSER=user1

Затем вызовите adduser скрипт с использованием:

sudo adduser --ingroup teacher "$myUSER"
0
15.11.2018, 13:10
2 ответа

Единицами являются оба файлы и каталоги. Полная информация об устройстве распространяется и считывается с обоих.

Обязательные файлы заканчиваются на .service, .target, .socket, .timer, .mountи так далее.

Необязательные каталоги заканчиваются на .service.d, .service.requires, .target.wantsи так далее. Те, которые заканчиваются на .d, содержат обычные файлы. Те, которые заканчиваются на .wantsи .requires, содержат символические ссылки. Подробнее см. в руководстве systemd.unit.

В вашем случае файл и (несуществующий в настоящее время -каталог )находятся в /etc/systemd. Вы, локальный администратор, являетесь источником обоих. В случае других устройств файл находится где-то еще, например, в /usr/lib/systemd, а каталоги — в /etc/systemd. Это отражает тот факт, что файловая часть предоставляется пакетом программного обеспечения, а части каталога были созданы в результате выбора и модификаций локального администратора (, таких как изменение Wantsнастройки устройства для включения некоторых других функций. единица ).

Модель systemd состоит в том, что содержимое /usr/lib/systemdи /usr/local/lib/systemdпоставляется пакетом -, содержимое /run/systemdсоздается на лету во время работы системы, а содержимое /etc/systemdопределяется локальным Системный администратор. Обычные файлы, каталоги и символические ссылки во всех четырех областях (, которые могут включать в себя более одного подкаталога system, подробности которого см. в руководстве ), синтезируются в полную информацию об устройстве с помощью правил. о том, что важнее чего.

1
28.01.2020, 02:31

Другие каталоги, которые вы показываете, это .wantsи .d— они не содержат весь служебный файл (, который будет находиться в /lib/systemd/systemдля служб, установленных через пакеты ), а только модификации.

Например, если вы запустите systemctl edit (servicename).serviceдля внесения изменений, возможно, вы захотите установить дополнительные переменные среды, вы автоматически получите /etc/systemd/system/servicename.d/override.conf, содержащий ваши изменения.

Целью этого является четкое разделение локальных изменений, сделанных администратором в /etc/, и определений управляемых служб пакета -в /lib/systemd/system, которые могут получать изменения с обновлениями пакетов.

1
28.01.2020, 02:31

Теги

Похожие вопросы