Systemd

在主機關閉期間解除安裝文件系統之前停止服務

  • June 18, 2020

有人可以告訴我如何在主機關閉期間開始解除安裝文件系統之前先停止 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 應該在關閉網路之前檢測它們並解除安裝它們。如果這沒有發生,請添加_netdevmount 選項來告訴 systemd 這實際上是一個網路共享。

引用自:https://serverfault.com/questions/1021765