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

Остановите службу перед размонтированием файловой системы во время выключения хоста

Может ли кто-нибудь сообщить мне, как я могу сначала остановить службу systemd до того, как размонтирование файловой системы начнется во время завершения работы хоста?

Файл модуля выглядит следующим образом

[Unit]
Description=FDB Service
After=network-online.target
Wants=network-online.target

[Service]
Environment=FDB_PID_DIR=/var/run/fdb/
Environment=LOCKFILE=/var/run/fdb/fdbmonitor.pid

Type=simple
User=ubuntu
Group=ubuntu
IgnoreSIGPIPE=false

ExecStart=/bin/bash /home/ubuntu/build-target/fdb/fdb-sysd-start.sh
ExecStopPost=-/home/ubuntu/build-target/fdb/fdb-sysd-poststop.sh

RestartSec=2s
Restart=always

[Install]
WantedBy=multi-user.target

Это почти наверняка проблема с вашим сервисом (fdb). systemd сначала попытается остановить все службы, а затем выполнит размонтирование. Убедитесь, что ваша служба остановится в разумное время - если для корректной остановки требуется больше времени, вы можете установить TimeoutStopSec= к более высокому значению. Также убедитесь, что Type=simple уместно, судя по всему Type=forking может быть лучше. При переходе на Type=forking использовать файл PID, добавив PIDFile=/var/run/fdb/fdbmonitor.pid - если он действительно содержит PID основного процесса.

Если вы используете подключенные к сети общие ресурсы, systemd должна обнаружить их и размонтировать перед выключением сети. Если этого не произошло, добавьте _netdev опция mount, чтобы сообщить systemd, что это на самом деле сетевой ресурс.