SSH経由でサーバーに接続していますが、時間がかかるプロセスを実行したいと思います。ラップトップ端末でSSHを使用してサーバーに接続していますが、ラップトップを終了できますが、サーバーは進行中です。 2台の別々のコンピュータなので、これを行うことができるようですが、SSHを介して実行できるかどうかはわかりません。
答え1
これは&
以下を追加するのと同じくらい簡単です。
bash script.sh &
セッションを終了したり端末を閉じたりしても、引き続き実行されます。
別の方法は、コマンドを使用してnohup
コマンドを実行することです。例えば
nohup bash script.sh
より多くの使い方を見つけてman nohup
フォローしてくださいこれ同様の方向の質問です。
答え2
背景作業
バックグラウンドで実行
program &
バックグラウンドで実行され、接続が切断された後も続行されます。またにstdout
リダイレクトされます~/nohup.out
。
nohup program &
同じだが別のファイルにリダイレクト
nohup program > "another file" &
jobs
バックグラウンドタスクを表示するために使用できる上記のコマンドを参照してください。
同じですが、タスクリストから削除されました
nohup program > "another file" & disown
永久セッション
gnuscreen
とtmux
を参照してくださいvnc
。接続が失われたときにセッションを開いたままにすることができます。
ゲヌscreen
#create a screen session (do this once)
screen -d -m
#attach to the session
screen -x
複数(名前付きセッション)を持つこともできます。
#create a screen session (do this once)
screen -d -m -S a_name
#attach to the session
screen -x -S a_name
内部的には、ctrl_aを使用して画面を制御します。 ctrl_a ctrl_a ctrl_aをシェルに渡します。
仮想ネットワークコントローラ
#create a vnc session (do this once)
vncserver -from 127.1.0.1 -geometry 1920x1000 :10
#attach to the session (from a remote machine)
ssvnc Vnc+ssh://«user»@«machine-name»:10
モニターを変更するには、ジオメトリを変更してモニター番号を変更してください。
メモ:
ローカルコンピュータの誰でもVNCセッションに接続できます。
適切なセキュリティがある場合は、追加して-SecurityTypes None
VNCセキュリティをオフにできますssh
。
127.1.0.1
ループバックの範囲内。ローカルコンピュータのプロセスのみを接続できます。 (ssvnc)を介してリモートで接続できますssh
。を使用してnftables
接続できるユーザーを制限できます127.1.0.1
。ループバック範囲(約1,600万個)127.0.0.1
には多くのアドレスがあるため、各ユーザーに1つを割り当ててまだ無料で使用できます。127.255.255.254