端末から起動するpythonベースのサーバーがあります。ターミナルのこの特定のインスタンスは、プログラムに制御を与え、プログラムは、閉じられるまでそれを一種のロギングウィンドウとして使用します。これは正常ですか、それとも単にアクティブなプロセスとして表示される他の方法でプログラムを起動しようとする必要がありますか?プログラムを開始した端末を閉じると、プログラムはそれで終了します。
ありがとうございました
古いbashでも、プロセスをバックグラウンドに送信するために&を使用していますが、他にもいくつかの方法があります..しかし、基本的な2つは次のとおりです。
1.)$~ your_command > outputfile_for_stdout &
# runs your command in background, giving you only PID so you can exit that process by `kill -9 PID_of_process`
# & goes at the end of row
2.)$~ your_command > outputfile_for_stdout
# this will run your program normally
# press Ctrl + Z then program will pause
$~ bg
# now your program is running in background
$~ fg
# now your program came back to foreground
3.)you can run terminal window under screen command so it will live until you either kill it or you reboot your machine
$~ screen
$~ run_all_your_commands
# Ctrl + A + D will then detach this screen
$~ screen -r will reattach it
その他の便利なコマンド:
$~ jobs
# will show you all processes running right now, but without PID
$~ ps
# will show you all processes for actual terminal window
デーモン(サービス)にするdaemon --name="yourservicename" --output=log.txt sh yourscript.sh
$ servicename &
&
を使用すると、プログラムが終了するまでシェルをブロックする代わりに、プログラムがバックグラウンドで実行されます。
ターミナルからscreen
を実行するか、&
でコマンドをフォローアップすることもできます。連続プロセスを実行する簡単な方法。