起動時に現在のランレベルの起動スクリプトのリストを表示しようとしています。次のコードを書きました。
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つになることを意味します。ランレベルのように実行されません。2
3
4
5
1
1
シングルユーザー通常、構造/メンテナンス操作に使用される実行レベルです。
答え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.local
SysVスクリプト全体の内容(シンボリックリンクを生成し、特定の形式でスクリプトの命名を含む)を実行したくない場合は、追加の開始コンテンツをファイルなど