GNU/Linux >> Linux の 問題 >  >> Linux

ssh で長時間実行されるコマンドを実行する

解決策 1:

最善の方法は screen を使用することです (サーバー上で)セッションを開始してコマンドを実行し、画面を切断して実行を継続し、他のことを実行したり、サーバーから切断したりできます。もう 1 つのオプションは、nohup を使用することです。 & と組み合わせて したがって、nohup <command> & になります。

解決策 2:

disown も使用できます screen なしですでにプロセスを開始している場合 または nohup

解決策 3:

既存の回答はうまく機能しますが、BusyBox (ホーム ルーターなどの最小限のハードウェア用のシェルとツールのセット) 用の何かが必要でした。私のシステムには screen がありません 、 dtachatdisown 、または nohup ! SO (リンク) の tbc0 のおかげで、この宝石を見つけました。すぐに戻りますが、サーバー プロセスは引き続き実行されます:

ssh myserver 'sleep 100 >&- 2>&- <&- &'

または、複数のコマンドが必要な場合:

ssh myserver '(echo one; sleep 100; echo two; sleep 200) >&- 2>&- <&- &'

説明:

  • >&- - 標準出力ハンドルを閉じる
  • 2>&- - stderr を閉じる
  • <&- - 標準入力を閉じる
  • & - プロセスをバックグラウンドに置く

これは外部プログラムを使用せず、ksh、ash、Bourne シェル、bash などで動作するはずです。


Linux
  1. SshによりWhileループが停止しますか?

  2. Perl Sshコマンドの特殊文字「#」?

  3. 画面コマンドを使用したスリープコマンドがPsに表示されませんか?

  1. SSHセッションからログアウトした後もコマンドを実行し続ける4つの方法

  2. Sshを介したコマンドでTrueを使用しますか?

  3. SSH - ~/.ssh/config ファイルに -t コマンドを含める方法

  1. Ssh – Ssh / scp / sftpユーザーをディレクトリに制限しますか?

  2. Linux screen コマンドの使用方法

  3. Linux で「screen」コマンドを使用する方法