CentOs 7.7を実行しているコンピュータがあります。リモートで端末に接続してスクリプトを実行しようとしています。パテを使用してSSHを介してサーバーに接続し、./run_server.sh
スクリプトを実行します。ファイルの内容run_server.sh
は次のとおりです(非常に単純化されています)。
#!/bin/bash
run_script=(./my_calculator_server)
"${run_script[@]}"
次に、2つの数字を取り、その合計を出力できる計算機サーバーの実行を開始します(再度簡略化)。問題は、Puttyプログラムを閉じるとスクリプトが終了し、セッションも終了することです。スクリプトが終了しなくてもPuttyを再実行すると、新しいターミナルウィンドウが開かれるため、戻りません。リモートでセッションにアクセスして対話し、いつでもセッションに戻ることを望みます。可能ですか?それでは、私の選択は何ですか?
私はステップバイステップの指示を求めるのではなく、これを行う方法を見つけようとするだけです。
PS:VNCはオプションではありません。
答え1
問題は、そのプロセスが現在のシェルセッションの子プロセスであることです。シェルが閉じると、すべての子プロセスが終了します。現在のシェルでプロセスをキャンセルする必要があります。
私は次の3つのオプションを知っています。
disown
:
コマンドを実行してCTRL+を押してZ現在のプロセスを一時停止し、runを押してbg
バックグラウンドで実行を続けてから実行しますdisown
。
nohup
出力を記録する簡単な方法が必要な場合は、次を使用します。
nohup your_command &
defaultという名前のファイルでコマンドの出力を見つけますnohoup.out
。
プロセスに再接続する必要がある場合、またはscreen
セッションを使用してください。tmux
エマルジョン: