Linux
系統後你不知道_在n一世噸unit選項不起作用
我有以下
myweb.service
文件[Unit] Description=myweb - A simple hello world program After=bluetooth.service [Service] Type=simple User=root ExecStart=/usr/bin/docker run -p 2222:4343 manikanth/webapp Restart=on-failure [Install] #WantedBy=multi-user.target
我故意禁用
bluetooth.service
並檢查。但是該服務仍然處於活動狀態。我認為這可能是由於WantedBy
,因此我發表了評論。問題依然存在如果依賴服務(例如)不活動,那麼不啟動服務的正確方法是什麼?
bluetooth.service
您可能正在尋找該
Requisite=
選項以及該After=
選項。從手冊頁
類似於 Requires=。但是,如果此處列出的單元尚未啟動,它們將不會啟動並且事務將立即失敗。
Requires=
在這種情況下不起作用是因為bluetooth.service
啟動時會啟動myweb.service
。Requisite=
選項不會嘗試啟動bluetooth.service
. 但是,它會顯示myweb.service
失敗。
如果我沒記錯的話,您正在尋找僅在啟動
myweb.service
時才啟動bluetooth.service
,否則不要觸發myweb.serbice
。如果正確,請閱讀以下答案,否則請糾正我!你真的應該使用
Requires
withAfter
。使用After
僅配置單元文件之間的排序依賴關係,但Requires
將確保依賴單元失敗時也會失敗。所以,添加Requires=bluetooth.service
和myweb.service``systemctl daemon-reload