放棄されたsshセッションに接続または表示できますか?


14

ssh企業ネットワーク上の任意のホストから実行できるredhatの仮想インスタンスがあります。私sshや私が切断させていない可能性がありますいくつかのスクリプトを実行中のセッションは削除されました。このwhoコマンドは、ドロップされた接続を引き続きローカルにリストします。で再接続するとssh、まったく新しいセッションが開始されます。元のセッションに接続する方法はありますか?そうでない場合、私はそれを殺すことができますか?ルートおよび物理アクセスがあります。元のセッションで画面を使用していませんでした。

回答:


11

リモートで画面を使用したい場合は、sshに戻ったときに画面のインスタンスに再接続します。

ただし、sshセッション自体に再接続することはできません。画面(またはそれを容易にするために他の何か)を使用する必要があります。

少なくとも1つの他のオプションと、その(tmux)と画面のいくつかの違いについては、この質問をご覧ください。その質問への答えを読んだ後...私は実際にtmuxが優れていると言います

ああ、はいkill、あなたはそれを停止するプロセス(フォークされたbashを含む)ができました、あなたはskill名前でユーザーを殺そうとするかもしれませんが、私はそのユーザーがrootであるかどうか疑っています...それができないものを殺そうとするかもしれません。

回答が数回更新されました


4

デフォルトでは、放棄されたsshセッションに再接続することはできません。ただし、sshセッション内でプロセスを設定することはできます。新しいsshセッションを再確立した後、プロセスに再接続できます。

使用したいのは、screenまたはさらに良いのはbyobuと呼ばれる画面のユーザーフレンドリーなラッパーです。

画面を使用すると、同じsshセッションで複数の仮想端末セッションを実行できます。チュートリアルヘルプページが用意されています。

byobuは、ctrl-aのキーの組み合わせではなく、シンプルなファンクションキーを使用して新しい画面を簡単に開くことができるラッパーです。また、名前を付けることができるすべての開いている仮想端末を含むステータス行も表示します。

もう1つの優れた機能は、ssh接続が切断されている間、すべての画面を表示できるという事実です。sshを介して再度接続し、byobuを呼び出すだけで、すべてが以前のようになります。

ついにby風のスクリーンショットがいくつか。


3

前述のように、おそらくscreenが最善の策です。セッションがドロップされた場合、またはセッションが実行され続けます。「screen -list」と入力して使用可能なセッションを表示し、「screen -r」と目的のセッションを入力します。ちょっとしたヒントとして、すべてをコピーして貼り付けるのではなく、セッション文字列をタブ補完することができます。

ただし、画面は煩わしい場合があります。私のクライアントでは、コンソールで履歴を表示するために簡単にスクロールできません。予想とは少し異なる動作をします。実行したいprocが強制終了されないようにしたいだけなら、「nohup」を使用してください。接続が失われたときにprocがシャットダウンされるのを防ぎます。ただし、監視する場合は、proc出力をファイルに送信してください。また、bashスクリプトがある場合、nohupの前で明示的に「bash」を呼び出す必要があると思います。例...

nohup bash ./myscript.sh> output.log 2>&1&

つまり、procの強制終了を防ぐために、スクリプトにbash固有の内容がある場合はbashを明示的に呼び出すbash、現在のディレクトリに 'myscript.sh'というスクリプト、std outとエラーを出力し、最後に「&」を付けてバックグラウンドでプロシージャを実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.