「reboot」コマンドの代わりに「telinit 6」を使用してコンピュータを再起動すると、どのような違いがありますか? [コピー]

「reboot」コマンドの代わりに「telinit 6」を使用してコンピュータを再起動すると、どのような違いがありますか? [コピー]

Unixのランレベルを理解しようとすると、ランレベル6が再起動状態であることがわかりました。だから私はそのコマンドを使ってランレベル6に切り替えようとしましたが、telinit 6私のコンピュータと同じように動作します。rebootKali Linuxを使用しているので、sudoは必要ありません。

ルーンレベルの変更/切り替えは、一部のプロセスを呼び出すコマンドですか?起動、再起動、または電源を切るときにランレベルのみを変更しますか?

答え1

initベースのオペレーティングシステムに/sbin/telinit接続/sbin/initsystemedベースのオペレーティングシステムに接続します。したがって、これは/sbin/systemed同様のソフトウェアと通信する方法です。initsystemed

telinit 6との結果rebootは同じですが、実装するアイデアは異なります。

から引用http://www.tutorialspoint.com/unix_commands/init.htm

実行レベルは、選択された一連のプロセスのみが存在することを可能にするシステムのソフトウェア構成です。

したがって、変化はまたはとrunlevel同じではありません。rebootingpower off

initシステムベースのオペレーティングシステムは、起動するプロセスグループを決定するためにシステムを起動するときにこのファイルをrunlevel永久に読み込みます。ランレベル6は、プロセスを開始せずに再起動することを意味します。/etc/inittabinit

変更/etc/inittabは永続的です。ファイルが変更されると、init再起動時にランレベルが変更され、ファイルがさらに変更されるまで続きます。

効果telinitはワンタイムで、再起動する必要はありません。再起動してからinitもう一度読み、/etc/inittabそれに応じてランレベルを開始してください。

Runlevel 6は、initすべての子プロセスを終了して再起動することを意味します。telinit 6 initすべての子プロセスを終了して再起動します。 initはコマンドを発行したrebootときと同じことを行います。ただし、これはランレベルの変更が再起動と同じであるという意味ではありません。システムのランレベルを6に永久に変更すると、/etc/inittab再起動が続くためです。

telinit 6コマンドの代わりにシステム再起動を使用してもreboot違いはありません。

答え2

Linuxには、UNIX System V initシステムをモデルにしたSysVinitという初期化システムがあります。 Linuxの一部のバージョンは、実際にはまだこのシステムを使用し、SystemdのSysVcompatのように互換性を維持するか、部分的に置き換える(sysvcompatはありませんがDebianなどのsysvスクリプトを使用する)、「純粋な」Systemdシステムのように完全に置き換えます。 。

SysVはデフォルトで実行レベルの概念を実装します。スクリプトは/etc/rc{runlevel}.d/にあります。ここで、runlevelはランレベルです。 SysV は、デフォルトで使用する項目も含め、実行レベルのデフォルトのソート動作を定義します。各ランレベルのすべてのスクリプトは、ランレベルが上がるか下がるかに応じて、開始機能または終了機能を使用して実行されます。したがって、sysvinitシステムでは、はい、最初に実行される/ sbin / initを起動すると、プログラムはすべてのランレベルにあるすべてのスクリプトの起動機能を実行します。また、/ etc / rc *にリンクされているよりも多くのスクリプトをインストールできることを指摘したいと思います。これは、スクリプトとスクリプトが制御するサービスを有効または無効にする方法です。

sysvを使用していないシステムは、systemdのようにこれをまったく実行する必要はありません。簡単に言えば、systemdには、他のサービス、マウントポイント、タイマー、または「network.target」などのターゲットなどの依存関係を定義する単位があります。 systemdはsysvスクリプトと完全な互換性を維持しますが、必ずしもランレベルである必要はないことを除いて、systemdについて詳しく説明しません。また、initを最初に実行するか、systemdを実行した後にすべてのsysvスクリプトを実行できます。あるいは、ディストリビューションがすべてのsysvスクリプトをシステム単位で置き換えた可能性があります。ほとんどのディストリビューションは、systemdと同様に、rebootまたはsystemdを介して実行するための互換性スクリプトをインストールしますtelinit

関連情報