如何將 dbus/systemd 設定為 systemd 單元中的依賴項
php小編小新將介紹如何將DBus/Systemd設定為Systemd單元的依賴項。 DBus和Systemd是Linux作業系統中常用的兩個工具,DBus用於進程間通信,而Systemd則負責系統初始化和進程管理。將DBus和Systemd結合起來使用可以實現更有效率的系統管理和資源調度。本文將詳細說明如何在Systemd單元中設定DBus作為依賴項,以幫助您更好地理解並應用這兩個工具的使用方法。
問題內容
我有一個用 go
寫的小程序,它使用 go-systemd 函式庫透過 dbus 與 systemd 互動。
程式本身註冊為 systemd 單元並應在引導時啟動。程式運行時,會定期查詢多個單元的systemd單元狀態。
現在當我手動啟動程式時,一切都很好。然而,當 systemd 重新啟動後啟動時,它將“掛起”,這意味著它將無法透過 dbus 查詢 systemd 單元狀態。我將從 go-systemd
庫收到以下訊息:
process org.freedesktop.systemd1 exited with status 1
現在,當我重新啟動程式時,它將立即能夠毫無錯誤地查詢 systemd 單元。這導致我假設我的程式存在錯誤/配置錯誤的依賴項,因此在啟動時會出現競爭條件,導致程式無法透過 dbus 與 systemd 進行通訊。
現在我已經把這個和其他幾個組合放在一起了,但它沒有幫助:
Requires=dbus.service After=dbus.service Wants=org.freedesktop.systemd1
我需要如何設定我自己的 systemd 單元(go 程式的),以便它能夠在重新啟動後立即透過 dbus 與 systemd 進行通訊?我必須配置什麼依賴項?
解決方法
聽起來您的程式預設正在嘗試連接到 DBus Session 總線,因為您說手動執行它時它工作正常。當應用程式從 Systemd 啟動時,預設情況下它將以 root 身分執行,沒有可連接的會話匯流排,因此它將失敗。
當使用者在圖形終端上登入時,會話匯流排通常會在每次登入的基礎上啟動。在終端登入時預設不會啟動。
如果是這種情況,我目前可以看到您有兩個選擇:
- 使用系統匯流排而不是會話匯流排。
- 建立您自己連接的匯流排,不同於會話匯流排和系統匯流排。最簡單的方法是使用
dbus-launch
建立您的應用程式可以連接到的新匯流排。
以上是如何將 dbus/systemd 設定為 systemd 單元中的依賴項的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

本研究全面深入剖析了在KaliLinux的滲透測試和安全審計流程中可能出現的軟體卸載難題,為保障系統穩定可靠貢獻了解決之道。一、了解軟體的安裝方式在進行應用程式卸載前kalilinux卸載軟體,首先確定其安裝路徑是至關重要的步驟。進而,根據所選途徑相應地挑選出適當的卸載方案。常見的安裝方法包括apt-get、dpkg以及原始碼編譯等各類別形式。每種策略都具備自身特性和相應的卸載措施。二、使用apt-get指令卸載軟體在KaliLinux系統中,apt-get功能元件被廣泛應用於高效便捷地執行軟體包

近日,國產作業系統麒麟Linux廣受矚目,個人人為資深電腦工程師麒麟linux安裝教程,對科技創新抱持濃厚興趣,故親身體驗了該系統的安裝流程,現將經驗在此和諸位共享。在執行安裝程序之前,我針對相關步驟進行了充分準備。首要任務是下載並拷貝最新的麒麟Linux作業系統鏡像至U盤;其次64位元linux,確保已備份個人設備中的重要數據,以應對潛在的安裝問題;最後,關閉電腦並插入U盤。進入安裝介面重新啟動電腦後,及時按下F12功能鍵,步入系統啟動選單選擇USB優先啟動項目。隨著一個美觀簡約的啟動畫面出現眼前

實際上,電腦使用了較長的一段時間之後,整體的效能都會呈現下降的趨勢,而對Windows系統的適應性也會不斷下降。除了電腦本身的原因,Windows系統不斷增強和擴展,對硬體需求也越來越高。因此,舊電腦安裝Windows系統後出現卡頓現象並不令人意外。之前,很多朋友都在後台詢問系統卡頓,舊電腦怎麼辦?如果你發現將新版Windows10系統安裝在舊電腦上會導致卡頓和操作問題,或許考慮轉向Linux系統是個不錯的選擇。大白菜整理了5個微型Linux系統,適合老舊電腦使用,可以有效降低CPU佔用率,讓你的

解決Linux命令列顯示亂碼問題的方法在Linux作業系統中,有時候我們在使用命令列介面時會遇到顯示亂碼的情況,這會影響我們對命令輸出結果或檔案內容的正常檢視和理解。造成亂碼的原因可能是由於系統字元集設定不正確、終端軟體不支援顯示特定字元集、檔案編碼格式不統一等問題。本文將介紹一些解決Linux命令列顯示亂碼問題的方法,同時提供具體的程式碼範例,幫助讀者解決類別

Linuxext2檔案系統是一種在大部分Linux作業系統上使用的檔案系統,它採用了一種高效的磁碟儲存結構來管理檔案和目錄的儲存。在深入探討Linuxext2檔案系統的實體儲存結構之前,我們首先需要先了解一些基本概念。在ext2檔案系統中,資料儲存在資料塊(block)中,資料塊是檔案系統中最小的可分配單位。每個資料塊有固定的大小,通常為1KB、2KB或4

為什麼Linux中的行程會處於休眠狀態?在Linux作業系統中,進程可能會處於休眠狀態,這是由於多種不同的原因和條件造成的。當進程處於休眠狀態時,表示該進程暫時被掛起,無法繼續執行,直到滿足某種條件後才能被喚醒繼續執行。接下來將詳細介紹在Linux中進程進入休眠狀態的幾種常見情況,並透過具體的程式碼範例加以說明。等待I/O完成:當進程發起一個I/O操作(例如讀取

身為資深Linux系統管理員,對於RedHat版Linux系統的分析與診治,本身已具備深厚的知識儲備與獨特觀感。此篇文章將深入解析RedHat版Linux系統的方方面面,主要包括識別其版本特徵、解碼版本編號以及遞迸測試版本更新的實際步驟等,以期幫助您全面掌握並高效利用RedHat作業系統的功能特性。 1.理解RedHat美國市值最高的網路公司之一,RedHat透過其在開源技術框架下研發的作業系統產品贏得了全球軟體市場的領先地位。旗下Linux發行版RedHatEnterpriseLinux(簡稱

如果您使用Linux作業系統,並希望系統在啟動時自動載入驅動器,可以透過將裝置的唯一識別碼(UID)和掛載點路徑新增至fstab設定檔來實現。 fstab是位於/etc目錄中的檔案系統表文件,它包含了系統在啟動時需要掛載的檔案系統的資訊。透過編輯fstab文件,您可以確保在每次系統啟動時都能正確載入所需的驅動器,從而確保系統的穩定運作。自動安裝驅動器可方便地應用於多種情境。例如,我計劃將系統備份到外部儲存設備。為了實現自動化,需確保設備與系統保持連接,甚至在啟動時。同樣,很多應用程式會直接
