Установите JDK 9 на Debian 10

Как объяснил @StephenHarris, проблема заключается в том, что в тот момент, когда systemd пытается прочитать модуль, файл с символической ссылкой еще недоступен


Чтобы systemd просто перезагрузил юниты после монтирования:

[Unit]
Description=reloads units stored in /mnt/data
DefaultDependencies=no
After=mnt-data.mount
Requires=mnt-data.mount

[Service]
Type=oneshot
ExecStart=/bin/systemctl daemon-reload

[Install]
WantedBy=local-fs.target

Это приведет к тому, что юниты станут доступными, потому что на этот раз на этот раз цель символических ссылок смонтирована.

Но к тому времени список заданий, которые необходимо выполнить для достижения default.target , уже сформирован,и служба не будет запущена.


Чтобы он также перезапустил вашу службу:

[Unit]
Description=restart unit stored in /mnt/data
Requires=mnt-data.mount

[Service]
Type=oneshot
ExecStart=/bin/systemctl daemon-reload
ExecStartPost=/bin/systemctl start sprinterd.service

[Install]
WantedBy=multi-user.target

Альтернативы:

  • Я тестировал с ExecStart=и ExecStartPost=, но он, очевидно, должен работать с ExecStartPre=иExecStart=
  • если речь идет об одном юните, то можно и :ExecStart=/bin/systemctl enable /mnt/data/sprinterd.serviceвместо демон -перезагрузка
  • если имеется несколько служб, выполните демон -перезагрузку , затем запустите один модуль, который использует ConsistsOf=или PartOf=для загрузки всех нескольких служб.
  • Если его NFS (или другая сетевая система ), конечно, local-fs.targetне лучший вариант установки для вас.

Для более старой -школы подхода в стиле SysVinit-поместите команды systemctl внутрь /etc/rc.localи chmod +xэтого файла.

А затем тайно опубликуйте в списке рассылки Devuan, как вам понадобился SysVInit для исправления b0rked SystemD;-)

0
14.02.2021, 14:11
0 ответов

Теги

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