シェルスクリプトでCtrl + Zを使用してSSHセッションを一時停止する方法は?

シェルスクリプトでCtrl + Zを使用してSSHセッションを一時停止する方法は?

SSH経由でリモートサーバー上で実行されるシェルスクリプトがあります。一時的にローカル端末に戻るには、Ctrl+を実行しZてシェルセッションをバックグラウンドにする必要があります。

次のコマンドを試しました。 (現在のシェルのpid($ $))

  1. suspend
  2. kill -s STOP $$
  3. killall -s STOP $$
  4. kill -s TSTP $$
  5. killall -s TSTP $$

しかし、以下のように、それらのどれも期待どおりに機能しません。

コマンド1、2、3:
セッションを正常に中断しましたが、コマンドプロンプトが再び表示されないため、それ以降は何もできません。

コマンド4,5:
セッションが一時停止していないようですが、実行後にコマンドプロンプトが表示されます。

この問題を解決する方法はありますか?

ベストアンサー1

コマンド1-3は、sshセッションを一時停止しませんが、回復できない可能性があるリモートシェルを一時停止します。

リモートサーバーのシェルはSSHセッションを一時停止できません。これはキーボード入力enter ~ ctrl+を使用してローカル側で行う必要がありますz。このキーシーケンスはローカルSSHから直接読み込み、それ自体を一時停止するように命令します。

ローカルシステムで別のウィンドウを開くことができますが、なぜシェルプロンプトを取得するためにSSHセッションを中断するのかわかりません。

おすすめ記事