2012-10-11 86 views
4

我想問一個問題,我廣泛的網絡搜索會建議答案是'不',但也許我忽略了一些東西...Python Unix/Windows抽象層的信號處理和用戶管理

是否有Python抽象層位於Unix和Windows信號處理(用於衍生的獨立進程)和用戶管理(獲取用戶和組條目,比較它們等)之上?

是的,我知道Windows和Unix在兩個方面都有所不同,但操作系統特定的方法確實可以完成類似的任務。所以創建一個抽象層似乎不是一個壞主意。

最接近我發現我在找什麼,至少對於子流程管理(以及在某種程度上「信號」這些子流程),是python-multiprocessing,即http://docs.python.org/dev/library/multiprocessing.html - 這是我正在尋找一種抽象,但它並不完全符合我的要求。

任何指針都在這樣的方向嗎?

模塊使Windows上的信號處理/用戶管理看起來像Unix,反之亦然。

+3

「信號處理」由信號(+ os.kill()),子過程模塊覆蓋。你對「用戶管理」有什麼用例?(提供一個在某個操作系統上工作的代碼示例,並描述它應該在另一個操作系統上執行的操作)? – jfs

回答

1

Python不已經有信號處理的一種抽象的,但是,Windows的限制爲:

信號()只能用SIGABRT,SIGFPE,SIGILL,SIGINT,SIGSEGV,或SIGTERM被調用。任何其他情況下都會引發ValueError。

用戶管理是一個總的不同的動物: 你將不得不自己編寫一個包裝,如果你想在這兩個平臺上類似的處理:

對於窗口窺視WIN32API(http://timgolden.me.uk/python/win32_how_do_i/check-a-users-credentials.html如)

在Linux/Windows再次爲這個目的不是很多,真正取決於如何認證(本地PAM,NIS等)有Debian使用的libuser和派生,但我從來沒有使用過它。 (http://linuxsoft.cern.ch/cern/slc6X/x86_64/yum/updates/repoview/libuser-python.html