「スクリーン」セッションを再起動後も存続させる方法はありますか?


25

Screenユーティリティを使用していますが、マシンの再起動時にセッションを保持したいと思います。不可能な場合は、再起動間でセッションを保持できるScreenの別の代替手段を推奨できます。

それが重要な場合は、Ubuntu Server 10.04(Lucid Lynx)を使用しています。

Screenを介していくつかのセッションを開きました。マシンがリブートすると、これらのセッションはすべて失われ、再びセッションを開く必要があります。これらのScreenセッションを保持する方法を探していました。


何をしようとしていますか?スクリーンセッションで実行されている履歴またはすべてを保持しますか?
マルセルG

1
これを行うと、再起動の目的が損なわれませんか?
ブライアンノブラウフ

「セッション」とはどういう意味ですか?複数の画面ウィンドウで他のホストにSSH接続しているということですか?もしそれがあなたの言いたいことなら、.shshパスワードなしのログインを有効にしているなら、.screenrcファイルを書いて、ログインしたいuser @ hostを指定することはトリックをするべきです... その後、画面を起動すると、すべてのssh接続が自動的に開始されます。rc.localから起動することもできます(su-yourusernameから起動する必要があるため少し注意が必要です)。ログインすると、実行中のスクリーンセッションを再アタッチできます。
natxo asenjo

1
さらに重要なのは、なぜあなたはいつもリブートするのですか?UnixサーバーはWindowsサーバーではなく、稼働時間が長いために設計されており、マシンには(カーネルセキュリティパッチなしで)何年も稼働することが知られています。カーネルセキュリティパッチが原因で再起動する場合は、kspliceのようなものを見てください。
Unix Janitor

回答:


16

まず、いくつかの重要なことを明確にしましょう。

  1. 何台のマシンが関係していますか?つまり、リモートマシンに接続していますか、それともすべてローカルマシンに接続していますか?
  2. リモートマシンが関与している場合、どのマシンが再起動されますか:サーバーまたはクライアントのどちらですか?

1台のマシンが関与している場合、またはサーバーがリブートされている場合は、ほとんどが運が悪いです。

リモートマシンにログインしているが、ローカルマシンを再起動する必要がある場合、ローカルマシンではなくリモートマシンで画面を実行していれば問題ありません。これは、スクリーンの経験のある(わずかに経験のある)ユーザーにとっては非常に明白であると思いますが、参考になるかもしれません。

さらにもう1つの可能性(これがあなたの状況に応じて役立つかどうか)は、VMでスクリーンを使用してマシンを実行することです。リモートの物理サーバーであり、再起動する必要があるものの、VMwareなどのゲストOSを持っているとします。ゲストOSをサスペンドして、ハードウェアの再起動後に再度起動できます。それはすべて、リブートが必要な理由、指定されていない理由、マシンをどれだけ制御できるか、そのようなトラブルに進んで行くかどうかによって異なります。

簡単なソリューションはありません。また、どのソリューションも機能しない可能性があります。しかし、幸運を祈ります。

多くのマシンにログインしている場合、すべてのリモートマシンで個別にscreenを実行するのは苦痛のように思えるかもしれません。この場合、それぞれが別のリモートマシンにログインする多数の画面ウィンドウを持つことができる中間画面を実行している画面があると便利です。中間マシンが稼働している限り、ローカルマシンを再起動するか(またはバッグに入れて夜に家に持ち帰ることができます)、スクリーンは中間マシンで実行され続けます。(そして明らかに、リモートマシンのいずれかがダウンした場合、そのマシンへの接続は失われますが、画面セッションの残りは問題ありません。)

ただし、ほとんどの場合、リモートマシンまたはリブートされる唯一のマシンのいずれかを指していることになります。その場合、これを行う簡単な方法はありません。CryoPIDは最初は有望に聞こえますが、同社のWebサイトではスクリーンには機能しません。

しかし、探索する価値があるもう1つのやや有望なオプションがあります。(それがあなたのために働くかどうかは、あなたがやろうとしていることをかなり正確に左右します。)github.comでこれをチェックしてください:https : //github.com/skoneka/screen-session/tree/master/ScreenSession/


cryoPIDの+1、それについて知らなかった!
Unix Janitor

ScreenSessionは、これは私が望んでいたまさにあることの説明から、面白そうだ
セルゲイG


4

画面を使用する代わりに、小さなVirtualbox VMを使用して、その中で作業します。その後、休止状態にしてホストを再起動し、VMを復帰させます(ラップトップのふたを閉じて再び開くように)。リモートホストへのSSH接続は、おそらくこの方法では持続しません。それを保証することは不可能だと思います。


実際に私はに私の答えを更新したいと思いますtmuxは、復活
ガイウス

tmux-resurrectは非常に優れたソリューションのようです。
serv-inc


1

これらすべてにおいて、Screen自体は非常にわずかです。「保存」したいのはスクリーンではありませんか?

Screenセッションを保存すると、その中のSSHプロセスとあらゆる種類の処理をカバーすることを提案しているようです。Screen内で実行されているものは、Screenのビジネスではありません。これらは、「保存」するのが難しいものです...実装可能な場合に実際に意味するものは何でも。

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