initをシャットダウンしたときにLinuxシステムを正しく停止する方法

initをシャットダウンしたときにLinuxシステムを正しく停止する方法

Qemuは、initプロセス(PID 1)がbashのLinux VMを起動します。動作中です。起動後にbashを使用できます。ただしexit、aまたはを使用してbashを終了すると、CTRL+Dカーネルパニックが発生します。

Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000

私はシステムが適切に停止したいと思っており、理想的にはbashを終了する前にディスクを同期したいと思います。

起動時にオプションを渡さなければカーネルの動作を変更できないことをご存知でしたか?

ベストアンサー1

直接することはできないようですが、実行することはできます。

# bash; sync; halt

最初の(PID 1)シェルで別のシェルを実行し、2番目のシェルが終了syncしたら実行します。halt

システムがファイルを編集できる場合は、同じタスクを実行するスクリプトを次の場所に配置して自動化できます/sbin/init

#/bin/sh
/bin/bash; /bin/sync; /sbin/halt

(私は「おそらく」と言います。Linuxがinitのようなスクリプトが好きかどうかわからないからです。)

どちらの場合も、使用する実際のシェルはPID 1ではありませんが、これは重要ではありません。

おすすめ記事