ここで、ネットを検索しても解決策がわからないという奇妙な問題があります:/
Apache を mpm-prefork から mpm-worker に切り替えた後、(Django) Python WSGI アプリケーションでサブプロセスを使用すると、数時間ハングした後に次の例外が発生します。
IOError at /
[Errno 4] Interrupted system call
問題の呼び出しは次のとおりです。
out = check_output(['sudo', 'quota', user_id])
ここで、check_output は Python 2.7 からのこの関数のバックポートですが、Debian Squeeze リポジトリから Python 2.6 を使用しています。
実際、プロセスは実行されているように見えますが、終了します。
ps aux | grep quota
root 15378 0.0 0.0 21864 1176 ? S 02:34 0:00 sudo quota ...SOME_ID...
root 15379 0.0 0.0 0 0 ? Z 02:34 0:00 [quota] <defunct>
Apache の構成は、WSGIScriptAlias といくつかのディレクトリ ディレクティブを設定するだけです。
明らかなことを見逃していますか?
セバスチャンに挨拶
解決策: Debian 6 に同梱されている sudo 1.7.4-4のバグで あることが判明しました。ホームページから最新の 1.8.x .deb をインストールすることで解決しました。