web-dev-qa-db-ja.com

サーバーのアップグレード中にSSH接続が失われる-プロセスに再接続する方法

それで、私は11.04から11.10へのUbuntuサーバーのアップグレードを実行していました。

私はそれをバックグラウンドで忘れてしまいましたSSHクライアントがタイムアウトして切断されました(WindowsのPuTTY、図に移動)。私の端末で最後にしたのは、古い設定などを維持することに関する質問でした。

サーバーに再度ログインしたとき、aptitudeファイルは別のプロセスによってロックされていたため、このアップグレードプロセスは入力を待機していると思います。

このプロセスを操作してアップグレードを続行するにはどうすればよいですか?可能な場合。

ありがとう

33
Stephen Melrose

プロセスは実際には、rootユーザーとして画面またはbyobuセッションで実行されます。ポート22またはフェイルセーフ1022でPuTTYを使用してサーバーに再接続します。ルートアカウントにSudo su-またはsu-を実行し、byobuまたはscreen -rを使用して画面を再開し、前の場所から再開します。

ああ、はい、私は難しい方法を見つけました;-)

36
user120896

できません。実行してアップグレードプロセスを見つける

lsof /var/lib/dpkg/lock

それを殺し、中断されたアップグレードを修正してください

dpkg --configure --pending

アップグレードを再開します。

36
Teddy

cryopidthis question で見つかります)は、現在の「プロセスのツリーではなく、1つのプロセス」がこのインスタンスの問題でない限り、役立つ場合があります。

プロセスが不当に強制終了され、その後クリーンアップする機会がなかったため、ファイルがロックされている可能性があります。aptitudeが実際にまだ実行されていることを確認してください。使用する lsof /var/lib/dpkg/lock確認するためのテディの回答で提案されているように-これはpidにクリオピッドを試すように指示します。

将来的には、可能な限り画面を実行してみることをお勧めします。 anywhereにSSH接続するときに最初に実行する画面(または画面のラッパーであるbyobu)を習慣にしていますが、問題がある場合は再接続できます。自動的に開始または再接続するように設定できますが、どこでもそうすることはできませんでした。試してみたい場合は、オンラインでいくつかの例( たとえば、これ )があります。

4
David Spillett