rc、rc.local、rc.sysinitの違いは何ですか?

rc、rc.local、rc.sysinitの違いは何ですか?

起動時に現在のランレベルの起動スクリプトのリストを表示しようとしています。次のコードを書きました。

rl=`runlevel | cut -d " " -f2`
ls /etc/rc.d/rc$rl.d/S* | cut -d "/" -f5
sleep 10

rc.localこのコードをファイルに入れるとうまくいきます。

rcただし、ファイルまたは別のスクリプトファイルabcに入れて、/etc/init.dランレベルディレクトリにソフトリンクを作成しても動作しません。

しかし、以下の簡単なコマンドはすべての方法で機能します。

ls /etc/init.d

特定のスクリプトが起動しない場合、特定のコマンド(実行レベルやパイプなど)は機能しませんか?それとも別のものはありますか?

コードをファイルに入れると、再起動のrc前後にコードが実行されます。

  • rcそれでは、ファイルrc.localとファイルrc.sysinitの違いは何ですか?
  • このファイルを正確にどこで編集する必要がありますか?

2、3、4、5ランレベルでS99local- >ソフトリンクもあります。rc.local

rc.localこれはランレベル1で実行できないことを意味しますか?

答え1

  • rc Linuxディストリビューションでは通常これを使用しませんが、BSD用
  • rc.localシンボリックリンクを追加せずに起動時に追加のコマンドを実行できるようにします。
  • rc.sysinitそんな気がする赤い帽子具体的かつプロセスの早い段階で実行します。最初のスクリプトの1つとして実行され、rc.local後で実行されます。

また、ランレベル2、3、4、5でrc.localへのS99local - >ソフトリンクを見つけることができます。これは、rc.localがランレベル1で実行されないことを意味しますか?

そうですね。これは、シンボリックリンクS99localが/etc/rc.localランレベルに入ったときに実行される最後のスクリプトの1つになることを意味します。ランレベルのように実行されません。234511シングルユーザー通常、構造/メンテナンス操作に使用される実行レベルです。

答え2

rc.sysinitこれはinitプロセスによって実行される最初のスクリプトです。このスクリプトはシステムを初期化するために使用され、以下を含みます。

  • カーネルモジュールのロード
  • ホスト名の設定
  • sysctl.confでカーネルパラメータを設定する
  • シリアルポート、RAID、LVMの初期化
  • ファイルシステム(/etc/fstabの/proc、/sysなど)を確認してマウントします。これは、/etc/fstabで指定されたオプションを使用してルートファイルシステムを再マウントする場合です(ルートファイルシステムは、initプロセスが開始される前に/ sysrootでカーネルによって読み取り専用でマウントされることに注意してください)。

実行後、実行レベルのスクリプトが実行されます(デフォルトの実行レベルが3の場合はrc.sysinit内部スクリプトが実行されます)。/etc/rc.d/rc3.d/

スクリプトはランレベルのスクリプトが実行された後に実行され、/etc/rc.d/rc.localSysVスクリプト全体の内容(シンボリックリンクを生成し、特定の形式でスクリプトの命名を含む)を実行したくない場合は、追加の開始コンテンツをファイルなど

関連情報