rc0.d・とは?初心者向けに分かるLinuxの停止とシャットダウンの仕組み共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
rc0.d・とは?初心者向けに分かるLinuxの停止とシャットダウンの仕組み共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


rc0.dとは何か

rc0.dは Linux 系の多くのシステムで使われる起動管理の一部です。昔からある SysVinit という仕組みの中で、ランレベルという動作モードに合わせて動くスクリプトの集まりを指します。rc0.dは特にランレベル0に対応するディレクトリで、文字どおりは停止やシャットダウンを行うときに実行されるリンクの集まりです。

実務上のポイントとしては、/etc/rc0.d や /etc/rc.d/rc0.d のようなパスに、起動時に実行されるスクリプトへのシンボリックリンクが並んでいる点です。リンク名は SK で始まり、先頭の二桁の数字が実行順を決めます。S は開始時に呼び出すべきサービス、K は終了時または停止時に呼び出すべきサービスを表します。

ランレベルという考え方は少し古く感じるかもしれませんが、多くの Linux ディストリビューションで SysVinit 互換の仕組みとしてまだ残っています。現代のシステムでは systemd という別の管理ツールが使われることも多いですが、SysVinit の思想を理解することで、rc0.d の役割をより分かりやすくつかめます。

rc0.d の仕組みを読み解く

rc0.d のファイル名の例を見てみると、K01network のような名前が並んでいます。ここで K が付くものは、今いるランレベルから別のランレベルへ移るときに、ネットワーク関連のサービスを停止させる役割を持つことを意味します。S01hpafild のような S が付くものは、ランレベルに入るときにそのサービスを起動することを意味します。数字が小さいものから順番に実行されるため、依存関係のあるサービスは適切な順序で処理されます。

実際の動作は次のように想像すると分かりやすいです。システムを停止させる際には、まず必要のないサービスを順に止め、最後に重要なサービスを停止します。rc0.d のリンクはその順序を決める道具として機能します。たとえばデータベースサービスを停止してからウェブサーバを停止する、といった順序を設定できます。

実務的な使い方と注意点

rc0.d の管理はディストリビューションごとにコマンドが異なります。Debian系では update-rc.d というコマンドで rc0.d へのリンクを追加・削除します。Red Hat 系では chkconfig などが使われます。新しい環境では systemd によるサービス管理が主流になっていますが、SysVinit 互換のスクリプトは依然として多くの現場で使われています。rc0.d を直接編集することは慎重に行い、変更前には現在のリンク構成をバックアップする習慣をつけましょう。

以下の表は rc0.d の基本的な役割を整理したものです。実務で迷ったときの参考にしてください。

<th>項目
説明
rc0.d の目的ランレベル0に対応する、停止時に実行されるスクリプトの集まり
S と K の意味S は start の略でサービスを起動、K は kill または stop の略で停止を指示
名前の数字の意味前後の実行順序を決める数字。小さいほど先に実行される
実際の動作例K01network は停止時にネットワーク関連を落とす、S20apache2 は停止時に apache2 を止める順序を指定する

このように rc0.d は起動と停止の流れをコントロールし、システムを安全にシャットダウンするのを助けます。初心者のうちは具体的なファイル名に惑わされがちですが、要点は 停止の順序を決める仕組みS と K の二文字で役割を表すこと、この3点です。


rc0.dの同意語

/etc/rc0.d
Runlevel 0(システム停止時)に実行するスクリプトのリンクが集まる実体ディレクトリ。ここから init.d の実体スクリプトが停止処理として呼び出される。
rc0.d ディレクトリ
0番ランレベル用のリンクをまとめたディレクトリ。S系(開始)とK系(停止)のリンクファイルが並ぶ。
ランレベル0用スクリプトリンクディレクトリ
0 番のランレベルで実行されるスクリプトへのショートカットが格納されるディレクトリ。
0番ランレベル用リンク集
ランレベル0で実行されるサービスの開始/停止処理を指示するリンクの集合。
SysVinit の停止用リンク集
SysVinit 方式で停止時に呼び出されるリンク(K系)を集約したコレクション。
停止処理用 S/K リンク集
S系は開始、K系は停止を指示するリンクで、0番ランレベルの停止処理に使われる。
ランレベル0の実行スクリプト格納場所
0番ランレベルで実行されるスクリプトへのリンクを保管する場所です。
rc.d/rc0.d ディレクトリ
rc.d 配下の、0番ランレベル用ディレクトリ。停止時のスクリプトリンクを格納します。

rc0.dの対義語・反対語

rc6.d
rc0.dの対概念として挙げられる、リブート時に関係する起動・停止処理のリンク集。再起動を前提とした動作を制御する代表例です(厳密な対語ではなく、運用上の対のイメージです)。
rcS.d
起動時の初期化ディレクトリ。システム起動時に実行されるS系リンクの集合で、停止系のrc0.dとは反対方向の動作を担う代表例です。
rc1.d
単一ユーザーモード用ディレクトリ。緊急時のメンテナンスや最小構成での運用を想定するモードの対比として挙げられます。
rc2.d
多ユーザーモードのうち、ネットワークの有無などがディストリビューションによって異なる場合の運用モードを表す司令の集まり。通常運用の一形態として対比に使われます。
rc3.d
多ユーザーモード(ネットワーク有り)用ディレクトリ。通常の運用モードとしてrc0.dの停止モードの対になるイメージです。
rc4.d
未使用で使われないことが多いディレクトリ。対義語として挙げる場合は“現状使われていない運用モード”のひとつという解釈になります。
rc5.d
グラフィカルログインを提供する多ユーザーモード用ディレクトリ。GUI環境での通常運用を表す代表的な反対イメージです。

rc0.dの共起語

rc0.d
runlevel 0(シャットダウン時)用のディレクトリ。通常は停止のための K で始まるリンクを配置し、サービスを順次停止させる。
rc1.d
runlevel 1(シングルユーザーモード)用のディレクトリ。最小限のサービスの起動/停止を管理するリンクが配置される。
rc2.d
runlevel 2 用のディレクトリ。多ユーザーモードを想定した起動/停止のリンクが配置される(ディストリビューションにより意味合いは異なる場合がある)。
rc3.d
runlevel 3 用のディレクトリ。ネットワーク有効な多ユーザーモードなどを想定したリンク群。
rc4.d
runlevel 4 用のディレクトリ。用途はディストリビューションごとに任意で設定されることが多い。
rc5.d
runlevel 5 用のディレクトリ。GUI付きの多ユーザーモードなど、用途が規定されている場合が多い。
rc6.d
runlevel 6 用のディレクトリ。再起動を実行する際の停止順序を管理するリンクが含まれる。
rcS.d
rcS.d は初期ブート時に実行される S 系のスクリプト群を含むディレクトリ。rcS からその後の runlevel の rc?.d が呼ばれる前の処理を担う。
Sリンク
rcN.d ディレクトリ内の S で始まるシンボリックリンク。起動時にサービスを開始する対象を指す。
Kリンク
rcN.d ディレクトリ内の K で始まるシンボリックリンク。別の runlevel へ移る際にサービスを停止する対象を指す。
S番号+サービス名
S で始まるリンクの具体例。例: S20httpd は起動順序 20 で httpd を開始する。
K番号+サービス名
K で始まるリンクの具体例。例: K20httpd は停止順序 20 で httpd を停止する。
init.d
実際のサービス起動/停止スクリプトを格納するディレクトリ。SysVinit 形式のスクリプト群がここに置かれる。
SysVinit
従来型の Init システム。runlevel によってサービスを起動/停止する方式。
runlevel
システムの運用状態を表す番号。0〜6 が定義され、rcN.d がその runlevel 用のスクリプト集合になる。
update-rc.d
Debian 系で rc?.d のリンクを追加・削除する管理ツール。
chkconfig
Red Hat 系で rc?.d のリンクを管理するツール。
/etc/inittab
SysVinit の起動設定ファイル。runlevel と実行するスクリプトの対応を記述する。
/etc/rc.local
起動時に任意のコマンドを実行するための追加スクリプト。多くは実行権限が必要。
シンボリックリンク
ファイル名が別のファイルを指す参照。rc?.d では S/K のリンクが実体スクリプトを指す。
サービス名
実体のデーモンやサービスの識別名。S/K リンクが指し示す対象。
Sスクリプト
S で始まるリンクが指す、サービスを開始する実体スクリプト。
Kスクリプト
K で始まるリンクが指す、サービスを停止する実体スクリプト。
systemdの互換性
systemd は現代の init 系で、SysVinit 互換のモードを提供することで rc?.d の役割を間接的にサポートする。

rc0.dの関連用語

rc0.d
System V init 系のランレベル0用ディレクトリ。シャットダウン時に実行されるリンク群で、Kという接頭のリンクが多く配置され、サービスを停止させる処理を順序付きで実行します。
rc1.d
ランレベル1用ディレクトリ。単一ユーザモードとして最小限のサービスのみを起動・停止する設定が入っています。
rc2.d
ランレベル2用ディレクトリ。多くのディストリビューションで通常のマルチユーザモード(ネットワーク有無は distro により異なる)を想定します。
rc3.d
ランレベル3用ディレクトリ。ネットワーク有りのマルチユーザモードを想定することが多いディレクトリ。
rc4.d
ランレベル4用ディレクトリ。未使用のケースが多いですが、 distro により用途が設定されていることもあります。
rc5.d
ランレベル5用ディレクトリ。グラフィカルログイン環境(Display Manager など)を起動する設定が入ることが多いです。
rc6.d
ランレベル6用ディレクトリ。再起動を目的としたリンク群が配置されます。
rcS.d
起動時の初期段階で実行される Sリンク群。システム起動の初期化処理をここから順次実行します。
Sリンク
Sで始まるリンクはサービスの開始(start)を指示するもので、実体は /etc/init.d のスクリプトへの参照。番号が小さいほど先に実行されます。
Kリンク
Kで始まるリンクはサービスの停止(stop)を指示するもので、番号順に実行されてシャットダウン時の停止処理を担います。
/etc/init.d
各サービスの実体スクリプトを置くディレクトリ。S/Kリンクはここを参照して起動/停止を行います。
init
PID 1のプロセスで、システムの初期化とサービスの起動順序を決定します。SysV init の中心的役割を担います。
SysV init
古典的な System V 初期化方式。ランレベルに基づきサービスの起動・停止を管理する仕組みです。
inittab
SysV init の設定ファイル。デフォルトのランレベルや起動順序、待機状態などを定義します。
runlevel
現在のランレベルを表示・取得するコマンド。過去のランレベル情報も併せて表示されることがあります。
/etc/rc.local
起動時に任意のコマンドを実行したい場合に用いるファイル。rc?.d の前後のタイミングで実行されることが多いです。
chkconfig
Red Hat 系ディストリビューションで、サービスの有効/無効をランレベル単位で管理するツール。S/Kリンクの生成・削除を行います。
update-rc.d
Debian 系ディストリビューションで、/etc/init.d のスクリプトと rc?.d へのリンクを管理するツールです。
サービス/デーモン
バックグラウンドで動作する長寿命のプロセス。init 系の起動対象となることが多いです。
依存関係
SysV init は依存性の解決が弱く、起動順はスクリプト間の設定に頼るケースが多いです。systemd へ移行する動機のひとつです。
/etc/rc.d
ディレクトリの場所はディストリビューションにより異なります。Red Hat 系では /etc/rc.d/rc?.d の形を使うことがあります。
systemd
現代的な init 管理システム。ユニット(unit)とターゲット(target)を用い、依存関係や起動順序を高度に管理します。rc?.d は従来の SysV init の概念で、systemd では直接的には使われません。
ランレベルとその状態
0: シャットダウン, 1: 単一ユーザモード, 2-4: マルチユーザモード(ネットワーク有無は distro依存), 5: グラフィカルログイン, 6: 再起動

rc0.dのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
15063viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2459viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1098viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1076viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
963viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
924viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
887viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
867viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
817viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
814viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
743viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
725viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
627viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
627viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
611viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
564viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
547viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
523viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
514viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
489viws

新着記事

インターネット・コンピュータの関連記事