Systemd
在主機關閉期間解除安裝文件系統之前停止服務
有人可以告訴我如何在主機關閉期間開始解除安裝文件系統之前先停止 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
- 你 -
Ubuntu 16.04.6
這幾乎肯定是您的服務 (fdb) 的問題。systemd 將首先嘗試停止所有服務,然後進行解除安裝。確保您的服務在合理的時間內停止——如果它需要更多時間來優雅地停止,您可以設置
TimeoutStopSec=
一個更高的值。另外,確保Type=simple
是合適的,從它看起來Type=forking
可能會更好。當切換到Type=forking
使用 PID 文件時,添加PIDFile=/var/run/fdb/fdbmonitor.pid
- 如果它實際上包含主程序 PID。如果您正在使用網路掛載的共享,systemd 應該在關閉網路之前檢測它們並解除安裝它們。如果這沒有發生,請添加
_netdev
mount 選項來告訴 systemd 這實際上是一個網路共享。