
-CentOS- | -Ubuntu-
init
initはプログラムを自動起動させたりする仕組みのこと。
そして、システムが起動制御できるプログラムのことをサービスという。
initではランレベルと呼ばれるシステムの起動状態を表す値がある。
ランレベルの数値と対応する状態
ランレベルは0〜6の数値で管理され、Red Hat系とDebian系とで別れる。
ランレベル | Red Hat系 | Debian系 |
---|---|---|
0 | 停止 | 停止 |
1 | シングルユーザモード | シングルユーザモード |
2 | 未使用/ユーザ定義可能なレベル | マルチユーザモード |
3 | マルチユーザモード(CUI) | マルチユーザモード |
4 | 未使用/ユーザ定義可能なレベル | マルチユーザモード |
5 | マルチユーザモード(GUI) | マルチユーザモード |
6 | 再起動 | 再起動 |
デフォルトのランレベルを確認する
デフォルトのランレベルは/etc/inittabファイルに書かれている。
id:デフォルトのランレベル:initdefault:
しかし、新しいディストリビューションではsystemdを使用している。
systemdはランレベルの代わりに「ターゲット」となる。
$ cat /etc/inittab
# inittab is no longer used when using systemd.
# systemd uses ‘targets’ instead of runlevels. By default, there are two main targets:
.
.
.
ランレベルを切り替える
「init」コマンド
書式 |
---|
init ランレベル |
ランレベル | 切り替えるランレベル0〜6 |
「telinit」コマンド
GUI環境で起動する。
書式 |
---|
telinit [オプション] ランレベル |
主なオプション | 説明 |
---|---|
q | initの設定ファイルを再読み込みする。 |
ランレベル | 切り替えるランレベル0〜6 |
ランレベルの確認
「runlevel」コマンド
GUI環境で起動する。
書式 |
---|
runlevel |
runlevelコマンドの実行
$ runlevel
N 5 -1-
- 1つ前と現在のランレベルが表示される。
[N (Nothing)]:ランレベルは起動中のみ記録されるので操作しなかったときに表示される。
サービスの制御スクリプト
initを利用している環境では起動スクリプトならびにシンボリックリンクが配置されている。
- Sで始まる:そのランレベルで起動させるスクリプト
- Kで始まる:そのランレベルで起動させないスクリプト
スクリプトでサービスを制御する
書式 |
---|
/etc/init.d/ スクリプト名 引数 |
主な引数 | 用途 |
---|---|
start | 起動 |
stop | 停止 |
restart | 再起動 |
status | 状態の確認 |
「service」コマンド
Red Hat系でSysV init環境におけるサービスを制御する。
書式 |
---|
service サービス名 引数 |
主な引数 | 用途 |
---|---|
start | 起動 |
stop | 停止 |
restart | 再起動 |
status | 状態の確認 |
「chkconfig」コマンド
Red Hat系でSysV init環境におけるサービスの自動起動を制御する。
書式 |
---|
chkconfig [オプション] サービス名 ON|OFF |
主なオプション | 説明 |
---|---|
--list | サービスの自動起動の状態を一覧表示する。 |
サービス名 | 制御対象となるサービス。 |
ON | ランレベル2〜5で自動起動する。 |
OFF | ランレベル2〜5で自動起動しない。 |
参照元情報