2012-10-11 53 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