我需要啓動服務並(稍後)檢測它是否在C++程序中運行。有沒有比調用具有合適參數的systemctl和解析輸出更簡單的方法?以編程方式啓動systemd服務或測試運行的服務
服務的來源完全在我的控制之下。 (目前,它是寫在bash,但一個C++包裝是完全可能的。)
(我在的DBus有過一次短暫的樣子 - 這顯然是很強大,但失敗了「簡單」的測試。)
服務的來源完全在我的控制之下。 (目前它是用bash編寫的,但C++完全有可能)。
該代碼適用於運行Debian Jessie變體的嵌入式設備。可移植性不是主要關心的問題(但顯然如果可移植的話,答案對其他人更有用)。
爲什麼你需要檢測服務是否仍在運行?何時以及爲何該服務停止運行?你在說什麼確切的服務? –
主程序本身就是一個可以自動更新的服務。顯然,更新過程涉及重新啓動主服務。通過將更新過程作爲單獨的(一次性)服務創建,它位於單獨的cgroup中,並且不會因殺死主要服務而中止。當主服務啓動並發現我們處於UPDATE模式時,它想知道更新服務是否仍在運行或者是否已崩潰。 –
這仍然不能告訴我們你的神祕服務是什麼服務....你應該**編輯你的問題**,而不是評論它! –