我想问一个问题,我的广泛的网络搜索会建议答案是'不',但也许我忽略了一些......
是否有Python抽象层位于Unix和Windows信号处理(用于生成的独立进程)和用户管理(获取用户和组条目,比较它们等)之上?
是的,我知道Windows和Unix在两个方面都有所不同,但操作系统特定的方法确实完成了类似的任务。因此,创建一个抽象层似乎不是一个坏主意。
我找到的最接近我正在寻找的东西,至少对于子流程管理(以及在某种程度上“发信号通知”那些子流程),是python-multiprocessing,即http://docs.python.org/dev/library/multiprocessing.html - 这是我正在寻找的那种抽象,但它并没有完全符合我的要求。
任何指针朝这个方向发展?
在Windows上进行信号处理/用户管理的模块看起来像Unix,反之亦然。
答案 0 :(得分:1)
Python已经有一种信号处理的抽象,但在Windows上你的限制为:
signal()只能使用SIGABRT,SIGFPE,SIGILL,SIGINT,SIGSEGV或SIGTERM调用。在任何其他情况下都会引发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)