4

我想问一个问题,我广泛的网络搜索表明答案是否定的,但也许我忽略了一些东西......

是否有 Python 抽象层位于 Unix 和 Windows 信号处理(用于衍生的独立进程)和用户管理(获取用户和组条目、比较它们等)之上?

是的,我知道 Windows 和 Unix 在这两个方面根本不同,但操作系统特定的方法确实完成了类似的任务。所以创建一个抽象层似乎不是一个坏主意。

我发现最接近我正在寻找的东西,至少对于子流程管理(并且在一定程度上“发信号”那些子流程),是 python-multiprocessing,即http://docs.python。 org/dev/library/multiprocessing.html - 这是我正在寻找的那种抽象,但它并不完全符合我的要求。

任何指向这个方向的指针?

使 Windows 上的信号处理/用户管理看起来像 Unix 或反之亦然的模块也可以。

4

1 回答 1

1

Python 确实已经有一种用于信号处理的抽象,但在 Windows 上,您仅限于:

只能使用 SIGABRT、SIGFPE、SIGILL、SIGINT、SIGSEGV 或 SIGTERM 调用 signal()。在任何其他情况下都会引发 ValueError 。

用户管理是完全不同的动物:如果你想在两个平台上进行类似的处理,你必须自己编写一个包装器:

对于 Windows,请查看 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

于 2013-05-01T17:55:02.177 回答