まず、いくつかの重要なことを明確にしましょう。
- 何台のマシンが関係していますか?つまり、リモートマシンに接続していますか、それともすべてローカルマシンに接続していますか?
- リモートマシンが関与している場合、どのマシンが再起動されますか:サーバーまたはクライアントのどちらですか?
1台のマシンが関与している場合、またはサーバーがリブートされている場合は、ほとんどが運が悪いです。
リモートマシンにログインしているが、ローカルマシンを再起動する必要がある場合、ローカルマシンではなくリモートマシンで画面を実行していれば問題ありません。これは、スクリーンの経験のある(わずかに経験のある)ユーザーにとっては非常に明白であると思いますが、参考になるかもしれません。
さらにもう1つの可能性(これがあなたの状況に応じて役立つかどうか)は、VMでスクリーンを使用してマシンを実行することです。リモートの物理サーバーであり、再起動する必要があるものの、VMwareなどのゲストOSを持っているとします。ゲストOSをサスペンドして、ハードウェアの再起動後に再度起動できます。それはすべて、リブートが必要な理由、指定されていない理由、マシンをどれだけ制御できるか、そのようなトラブルに進んで行くかどうかによって異なります。
簡単なソリューションはありません。また、どのソリューションも機能しない可能性があります。しかし、幸運を祈ります。
多くのマシンにログインしている場合、すべてのリモートマシンで個別にscreenを実行するのは苦痛のように思えるかもしれません。この場合、それぞれが別のリモートマシンにログインする多数の画面ウィンドウを持つことができる中間画面を実行している画面があると便利です。中間マシンが稼働している限り、ローカルマシンを再起動するか(またはバッグに入れて夜に家に持ち帰ることができます)、スクリーンは中間マシンで実行され続けます。(そして明らかに、リモートマシンのいずれかがダウンした場合、そのマシンへの接続は失われますが、画面セッションの残りは問題ありません。)
ただし、ほとんどの場合、リモートマシンまたはリブートされる唯一のマシンのいずれかを指していることになります。その場合、これを行う簡単な方法はありません。CryoPIDは最初は有望に聞こえますが、同社のWebサイトではスクリーンには機能しません。
しかし、探索する価値があるもう1つのやや有望なオプションがあります。(それがあなたのために働くかどうかは、あなたがやろうとしていることをかなり正確に左右します。)github.comでこれをチェックしてください:https : //github.com/skoneka/screen-session/tree/master/ScreenSession/