4

広範なウェブ検索で答えが「いいえ」であると思われる質問をしたいのですが、何か見落としている可能性があります...

Unix と Windows のシグナル処理 (生成された独立したプロセス用) とユーザー管理 (ユーザーとグループのエントリの取得、それらの比較など) の上にある Python 抽象化レイヤーはありますか?

はい、Windows と Unix は根本的に両方の面で異なることを知っていますが、OS 固有の方法は同様のタスクを実行します。したがって、抽象化レイヤーを作成することは悪い考えではないようです。

私が探しているものに最も近いものは、少なくともサブプロセス管理 (およびこれらのサブプロセスをある程度「シグナリング」すること) のために、python-multiprocessing、つまりhttp://docs.python です。 org/dev/library/multiprocessing.html - これは私が探している抽象化の一種ですが、私が望んでいることはまったくできません。

そのような方向に向かう指針はありますか?

Windows でのシグナル処理/ユーザー管理を Unix のように見せるモジュール、またはその逆のモジュールも問題ありません。

4

1 に答える 1

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 など) に大きく依存します。( http://linuxsoft.cern.ch/cern/slc6X/x86_64/yum/updates/repoview/libuser-python.html )

于 2013-05-01T17:55:02.177 に答える