25 Linuxシステムの実行レベル

4857 ワード

前のレッスンでLinuxシステムの実行レベルについて何度も言及しましたが、runleveではrunlevelは何ですか?Linuxにはデフォルトで7つの実行レベルがあり、実行レベル0から実行レベル6まで、各実行レベルには次のような意味があります.
  • 運転レベル0:シャットダウン
  • 運転レベル1:シングルユーザモード、システムに問題が発生した場合、このモードでメンテナンスを行うことができ、典型的な応用シーンはrootパスワードを忘れた場合、このモードに入ってrootパスワードを変更することができる.
  • 実行レベル2:マルチユーザモードですが、ネットワーク接続はありません.
  • 実行レベル3:完全マルチユーザモードであり、linuxシステムで最も一般的な実行レベルでもある.
  • 実行レベル4:未使用のままにします.
  • 運転レベル5:ウィンドウモード、マルチユーザサポート、ネットワークサポート.
  • 運転レベル6:再起動.

  • Linuxはいつでも1つのrunlevelでしか実行できません.システムは起動中に/etc/inittabの設定に従ってrunlevelの数値Xを読み出し、それに応じて/etc/rcXを読み出して実行する.d/(Xは0~6を表す)のすべてのスクリプト.我々の実験環境では,ll /etc/rc3.dを実行すると,我々のシステムは3という実行レベルの下で起動スクリプトを見ることができる.
    root@ubuntu:~# ll /etc/rc3.d/
    total 20
    drwxr-xr-x   2 root root  4096 Sep 25 00:02 ./
    drwxr-xr-x 130 root root 12288 Oct  4 23:08 ../
    -rw-r--r--   1 root root   677 Feb 16  2016 README
    lrwxrwxrwx   1 root root    20 Sep  9 01:25 S20kerneloops -> ../init.d/kerneloops*
    lrwxrwxrwx   1 root root    15 Sep  9 01:25 S20rsync -> ../init.d/rsync*
    lrwxrwxrwx   1 root root    24 Sep 25 00:02 S20screen-cleanup -> ../init.d/screen-cleanup*
    lrwxrwxrwx   1 root root    27 Sep  9 01:25 S20speech-dispatcher -> ../init.d/speech-dispatcher*
    lrwxrwxrwx   1 root root    15 Sep  9 01:25 S50saned -> ../init.d/saned*
    lrwxrwxrwx   1 root root    19 Sep  9 01:25 S70dns-clean -> ../init.d/dns-clean*
    lrwxrwxrwx   1 root root    18 Sep  9 01:25 S70pppd-dns -> ../init.d/pppd-dns*
    lrwxrwxrwx   1 root root    21 Sep  9 01:25 S99grub-common -> ../init.d/grub-common*
    lrwxrwxrwx   1 root root    18 Sep  9 01:25 S99ondemand -> ../init.d/ondemand*
    lrwxrwxrwx   1 root root    18 Sep  9 01:25 S99rc.local -> ../init.d/rc.local*
    

    READMEファイルを表示することで、フォルダの下にあるスクリプトの説明を表示できます.
    root@ubuntu:~# cat /etc/rc3.d/README 
    The scripts in this directory are executed each time the system enters
    this runlevel.
    
    The scripts are all symbolic links whose targets are located in
    /etc/init.d/ .
    
    To disable a service in this runlevel, rename its script in this
    directory so that the new name begins with a 'K' and a two-digit
    number, and run 'update-rc.d script defaults' to reorder the scripts
    according to dependencies.  A warning about the current runlevels
    being enabled not matching the LSB header in the init.d script will be
    printed.  To re-enable the service, rename the script back to its
    original name beginning with 'S' and run update-rc.d again.
    
    For a more information see /etc/init.d/README.
    
  • まず、実行可能なプログラムはすべて/etc/init.d/に格納、現在のフォルダの下にはinitが格納.d以下、ファイルの接続を実行することができる.
  • 次に、システムはまずKの先頭を実行し、2つの数字に従ってサービス名の接続スクリプトを実行する.次はSの冒頭のシナリオで、KとSの意味はそれぞれkillとstartです.
  • 再度、同じアルファベットで始まるスクリプトでは、数字が小さい順に先に実行し、数字が大きい順に実行します.

  • eg:実行レベル1と実行レベル3の比較:
    root@ubuntu:~# ll /etc/rc1.d/
    total 20
    drwxr-xr-x   2 root root  4096 Sep 25 00:02 ./
    drwxr-xr-x 130 root root 12288 Oct  4 23:45 ../
    lrwxrwxrwx   1 root root    20 Sep  9 01:25 K20kerneloops -> ../init.d/kerneloops*
    lrwxrwxrwx   1 root root    15 Sep  9 01:25 K20rsync -> ../init.d/rsync*
    lrwxrwxrwx   1 root root    15 Sep  9 01:25 K20saned -> ../init.d/saned*
    lrwxrwxrwx   1 root root    24 Sep 25 00:02 K20screen-cleanup -> ../init.d/screen-cleanup*
    lrwxrwxrwx   1 root root    27 Sep  9 01:25 K20speech-dispatcher -> ../init.d/speech-dispatcher*
    -rw-r--r--   1 root root   369 Mar 12  2014 README
    lrwxrwxrwx   1 root root    19 Sep  9 01:25 S30killprocs -> ../init.d/killprocs*
    lrwxrwxrwx   1 root root    19 Sep  9 01:25 S70dns-clean -> ../init.d/dns-clean*
    lrwxrwxrwx   1 root root    18 Sep  9 01:25 S70pppd-dns -> ../init.d/pppd-dns*
    lrwxrwxrwx   1 root root    16 Sep  9 01:25 S90single -> ../init.d/single*
    root@ubuntu:~# ll /etc/rc3.d/
    total 20
    drwxr-xr-x   2 root root  4096 Sep 25 00:02 ./
    drwxr-xr-x 130 root root 12288 Oct  4 23:45 ../
    -rw-r--r--   1 root root   677 Feb 16  2016 README
    lrwxrwxrwx   1 root root    20 Sep  9 01:25 S20kerneloops -> ../init.d/kerneloops*
    lrwxrwxrwx   1 root root    15 Sep  9 01:25 S20rsync -> ../init.d/rsync*
    lrwxrwxrwx   1 root root    24 Sep 25 00:02 S20screen-cleanup -> ../init.d/screen-cleanup*
    lrwxrwxrwx   1 root root    27 Sep  9 01:25 S20speech-dispatcher -> ../init.d/speech-dispatcher*
    lrwxrwxrwx   1 root root    15 Sep  9 01:25 S50saned -> ../init.d/saned*
    lrwxrwxrwx   1 root root    19 Sep  9 01:25 S70dns-clean -> ../init.d/dns-clean*
    lrwxrwxrwx   1 root root    18 Sep  9 01:25 S70pppd-dns -> ../init.d/pppd-dns*
    lrwxrwxrwx   1 root root    21 Sep  9 01:25 S99grub-common -> ../init.d/grub-common*
    lrwxrwxrwx   1 root root    18 Sep  9 01:25 S99ondemand -> ../init.d/ondemand*
    lrwxrwxrwx   1 root root    18 Sep  9 01:25 S99rc.local -> ../init.d/rc.local*