Systemd
在啟動服務之前等待掛載
我有一個帶有外部硬碟的 Raspbian 9 系統,它
/srv/file
在引導過程中被掛載。我正在執行 PostgreSQL 和 BIND,它們都有駐留在該磁碟上的數據文件。啟動時,PostgreSQL 經常無法啟動,因為尚未安裝外部磁碟文件系統。BIND 啟動,但出於同樣的原因,文件系統上儲存的任何內容的名稱解析都會失敗。
systemctl list-units | grep mount
告訴我文件系統的 systemd 單元是srv-file.mount
. 然後我去添加Requires=srv-file.mount
到and
[Unit]
部分(都沒有任何其他啟動要求),但仍然無濟於事。bind9.service``postgresql.service
我錯過了什麼?
根據文件,有一個專門用於安裝的選項:
RequiresMountsFor=/srv/file/named
確保在本機啟動之前訪問所需的所有支架均已安裝
/srv/file/named
到位。這對 BIND 有效。
然而,對於 PostgreSQL,似乎還有其他一些錯誤。該服務似乎已關閉(Webmin 告訴我它是,並且使用它的應用程序也不起作用),但
systemctl status postgresql
告訴我它已啟動:● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-13 18:48:18 CEST; 4min 57s ago Process: 543 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 543 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 4915) CGroup: /system.slice/postgresql.service
查看單元文件告訴我它除了執行之外什麼都不做
true
。這似乎是一個與我想像的不同的問題;顯然我編輯了錯誤的文件。