![「reboot」コマンドの代わりに「telinit 6」を使用してコンピュータを再起動すると、どのような違いがありますか? [コピー]](https://linux33.com/image/130597/%E3%80%8Creboot%E3%80%8D%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%AB%E3%80%8Ctelinit%206%E3%80%8D%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%82%92%E5%86%8D%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E9%81%95%E3%81%84%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
Unixのランレベルを理解しようとすると、ランレベル6が再起動状態であることがわかりました。だから私はそのコマンドを使ってランレベル6に切り替えようとしましたが、telinit 6
私のコンピュータと同じように動作します。reboot
Kali Linuxを使用しているので、sudoは必要ありません。
ルーンレベルの変更/切り替えは、一部のプロセスを呼び出すコマンドですか?起動、再起動、または電源を切るときにランレベルのみを変更しますか?
答え1
init
ベースのオペレーティングシステムに/sbin/telinit
接続/sbin/init
、systemed
ベースのオペレーティングシステムに接続します。したがって、これは/sbin/systemed
同様のソフトウェアと通信する方法です。init
systemed
telinit 6
との結果reboot
は同じですが、実装するアイデアは異なります。
から引用http://www.tutorialspoint.com/unix_commands/init.htm
実行レベルは、選択された一連のプロセスのみが存在することを可能にするシステムのソフトウェア構成です。
したがって、変化はまたはとrunlevel
同じではありません。rebooting
power off
init
システムベースのオペレーティングシステムは、起動するプロセスグループを決定するためにシステムを起動するときにこのファイルをrunlevel
永久に読み込みます。ランレベル6は、プロセスを開始せずに再起動することを意味します。/etc/inittab
init
変更/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
。