解決策 1:
最善の方法は screen を使用することです (サーバー上で)セッションを開始してコマンドを実行し、画面を切断して実行を継続し、他のことを実行したり、サーバーから切断したりできます。もう 1 つのオプションは、nohup を使用することです。 & と組み合わせて したがって、nohup <command> & になります。
解決策 2:
disown も使用できます screen なしですでにプロセスを開始している場合 または nohup
解決策 3:
既存の回答はうまく機能しますが、BusyBox (ホーム ルーターなどの最小限のハードウェア用のシェルとツールのセット) 用の何かが必要でした。私のシステムには screen がありません 、 dtach 、 at 、 disown 、または 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 などで動作するはずです。