Windowsでバックグラウンドプロセスとして実行するPythonスクリプトがあります。
私はLinuxでそれを行うことができます:
python script.py &
そして、次のコマンドでターミナルからプロセスを切断します:
disown
Windowsでは、これまでのところこれだけです:
start /b python script.py
ただし、CMDウィンドウを閉じると、スクリプトの実行が停止します。スクリプトをバックグラウンドで実行し続けるためにここで欠けている追加のコマンドはありますか?
start
はすでに正しい方向にあるはずです。ただし、_/b
_は同じコンソールに接続します。ここで問題は、コンソールウィンドウが閉じられると、このコンソールに関連付けられているプロセスもすべて閉じられることです。
_/b
_なしでstart
を使用すると、新しいコンソールで実行されます。コンソールウィンドウなしでバックグラウンドで実行する場合は、VBScriptまたはサードパーティのツールを使用する必要があります。 バッチファイルを完全に非表示の方法で実行する
ただし、その場合、stdout/stderrの出力は表示されなくなります。ただし、_cmd /c your_command > stdout.txt 2> stderr.txt
_呼び出しでラップし、前述のメソッド(VBScript、サードパーティツールなど)のいずれかを使用してこれを開始することで、ファイルにリダイレクトできます。
または、終了する前に独自のコンソールウィンドウを非表示にすることもできます。私はちょうどそれを行う小さな1行のプログラムを書きました(ソースコードは基本的にShowWindow(GetConsoleWindow(), SW_HIDE)
): http://share.cherrytree.at/showfile-24286/hide_current_console.exe =
このように、_start /b
_を使用でき、コンソールを「閉じる」(技術的には非表示にする)場合は、_hide_current_console & exit
_を実行してコンソールを非表示にしてから、cmd.exeプロセスを閉じます( pythonプロセス)ではありません-コンソールがすでに非表示になっているとexit
を入力できないため、1行で入力します。