私の仮想マシンはUbuntu(14.04.4)で実行されています。時には、再起動コマンドで仮想マシンを再起動したい場合があります。コマンドを実行すると「成功」と表示されますが、何も起こりません。
システムログを確認しましたが、特別なログは見つかりませんでした。 SSHなどの一部のサービスがダウンしているようです。
再起動する前に、仮想マシン(1.12.6)にdocker hangの問題があり、/var/lib/dockerからdockerファイルを削除しました。ゾンビプロセスがまだ存在します。
VM Web コンソールから VM を再起動できます。 (許可なし)
知りたい、
- このようなことが起こったらどうすればいいですか?
- / procで見つかったように、この問題の手がかりをどのように見つけることができますか? "shutdown -r"を使用して再起動し、実行中のすべてのプロセスを終了しようとします。どんな状況でも「再起動」は中断されますか?
- 最初の「reboot」コマンドの後に「reboot -f」を再実行してシステムをシャットダウンできますか?安全ではなく、試していませんでした。
ポリスチレン
この問題に対して魔法コマンドを実行すると、サーバーはすぐに正常に再起動します。
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
ダーティページをディスクに同期したり、実行中のすべてのプロセスを終了するなど、再起動すると正常に再起動できることがわかります。
再起動を実行すると、一部のゾンビプロセスが特殊な名前空間に作成されました。 dockerコンテナが削除され、名前空間も削除されるため、メモリにはtask_structのみが残り、wait4によって解放される必要があります。
プロセス間の継承は、
容器を取り出した後、廃棄、
- Dockerコンテナが終了すると、init 1によって子プロセスが採用されます。
- コンテナが削除されたため、エントリポイントの開始プロセスを終了できません。
親プロセスが待機せずにメモリに残っているため、ゾンビは持続します4
- init 1(global ns) - > dockerコンテナ化(global ns)(sleep) - > dockerエントリポイントの開始(container ns)(sleep) - > java(container ns)(ゾンビ)