2016-11-28 52 views
0

這是一個擴展的問題is there a way to start/stop linux processes with python?用於報告和操作系統服務的跨平臺python庫?

我只是碰到這段代碼傳來:

os.system("/etc/init.d/apache2 " + op) 

...其中op是對服務執行的操作。

顯然這是init -specific,可能甚至限於openrc或其他一些。它也很容易打破。

是否有python庫來管理系統服務使用平臺自己的服務管理器

它可能與OS Rosetta一樣簡單,但我想如果包含非POSIX操作系統會更復雜一點。

而不是在其他問題:

  • 我不希望該服務是我的Python應用程序的子進程。服務本身應該像平常一樣獨立管理。
  • 我們應該,如果可能的話,請使用操作系統的選擇過程經理
  • 在Linux上,這可能意味着任何OpenRC的,初始化,supervisord的等
  • 我想它也適用於對Windows和OSX上運行,如果可能的話。

我們不一定需要複雜的操作。開始,停止,重新啓動,重新加載,並且狀態正常。

回答

0

**臨時應答 - POSIX系統只**

Ansible似乎已經寫一個類來完成這一here,至少對POSIX衍生操作系統。

從代碼:

支持的初始化系統包括BSD的init,OpenRC的,SysV的,SMF的Solaris,systemd,暴發戶。

這似乎是一類被稱爲「LinuxService」,其具有多種功能:

get_service_status() 
service_enable() 
service_control()