私はWindows 7でPython 2.6を使用しています.CherryPy Webサーバー(バージョン3.1.2)を実行するPythonを起動するWindows .cmdファイルがあります。 Windows CMDシェルのプロンプトでこの.cmdファイルを実行してこの.cmdファイルを開始します。 CherryPyは、依存ファイルの1つが変更されたことに気づいたときに再起動します。そこCherryPyには、自分自身を再起動するために使用する呼び出しはコンソールから切り離さずに、WindowsのPythonでos.execv()を実行する方法は?
os.execv(sys.executable, args)
あるので、Windows上でこの構成で発生する夫婦の問題は、ですが、あなたは.cmdのファイル上でPythonの実行可能ファイルを呼び出すことはできません。私は、様々なPythonの体操を通じてその問題を回避するために管理してきた、そして今私はそれが(基本的に)を呼び出して再起動するんだ
os.execv(sys.argv[0], args)
しかし、再起動したプロセスは、キーボードから取り外されています。それは、Ctrlキーを押しながらCをキャッチします、そして私は
Terminate batch job (Y/N)?
頼んだが、YまたはNIタイプが終了.cmdのファイルではないキャッチされていますが、Windows CMDシェルによって、それが
'Y' is not recognized as an internal or external command, operable program or batch file.
を応答します
それでは、再起動したプロセスをUnixの "フォアグラウンド"と呼ぶようにWindowsで設定するにはどうしたらいいですか?
あなたはこの例のような方法import subprocess
retcode = subprocess.call(["ls", "-l"])
サブプロセスクラスの詳細については、このリンクを参照してくださいsubprocess.call使用することができます
この質問を[リンク](のhttp:// stackoverflowの.com/questions/7004687/os-exec-on-windows)はこの質問のより単純なバージョンです。その質問に対する答えはこの回答に数えられますが、満足できる回答は得られていません。 –
その質問に対する私の新しいコメントを見てください。 –