
これを実行する方法をいつも忘れてしまいます。サーバー/デーモンの inittab 実行レベルを変更するにはどうすればいいでしょうか?
答え1
いくつかの異なる場所があります。ただし、次の説明でほとんどの場所をカバーできるはずです。
/etc/inittab をチェックインし、「chkconfig」コマンドを使用して、/etc/init.d エントリへのシンボリック リンクを含む rcX.d ディレクトリを更新します。
答え2
以前のランレベルと現在のランレベルを確認するには、
[root@example ~]# runlevel
N 3
ここでは、以前のランレベルはなく、現在のランレベルは 3 です。
ランレベルを一時的に変更するには、
[root@example ~]# init RUNLEVEL
マシンのデフォルトのランレベルを永続的に変更するには、/etc/inittabの
id:5:initdefault:
5をお好みのレベルに変更します。
RHEL または CentOS などのクローン ディストリビューションのいずれかを使用している場合、デフォルトのランレベルは、サーバーの場合は 3、X が自動的に起動されるデスクトップの場合は 5 になります。
Debian またはそのさまざまな派生製品を使用している場合、デフォルトのランレベルは 2 になります。
Ubuntu は upstart タスク選択プログラムに移行したため、/etc/inittab が欠落している可能性があり、デフォルトでランレベル 2 が使用されます。デフォルトのランレベルを変更する場合は、ランレベルを作成するか、grub を介して起動時にランレベルを渡すこともできます。
デーモンのランレベルを変更するには:
RHEL または別の RPM ベースのディストリビューションを使用している場合は、chkconfig がおそらく最も便利な方法でしょう。
[root@example ~]# chkconfig --list ntpd
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@example ~]# chkconfig ntpd on
[root@example ~]# chkconfig ntpd off
[root@example ~]# chkconfig --level 2,5 ntpd on
Debian を使用している場合、通常はランレベルごとにデーモンのステータスを手動で変更します。
[root@example ~]# ls /etc/rc2.d/*ntp*
/etc/rc2.d/S23ntp
[root@example ~]# cd /etc/rc2.d/
[root@example rc2.d]# mv K23ntpd S23ntpd
デーモンのシンボリックリンクが K で始まる場合、そのランレベルで停止します。S で始まる場合、そのランレベルで起動します。
答え3
実際には2つの質問をしています。
- サーバーのデフォルトのランレベルを変更する方法
- デーモンが実行するランレベルを変更する方法。
1はマーク(彼の答え)
2 はシステムに依存します。RedHat ベースのシステム (RH、YDL、Fedora など) では、chkconfig を使用してすべてを構成します。たとえば、Apache をランレベル 3、4、5 で起動するには、次のコマンドを実行します。
chkconfig --levels 345 httpd on
Gentoo システムでは、rc-update ツールを使用して、次のコマンドを実行します。
rc-update add apache2 default
答え4
デーモンは通常、/etc/rc.d/ または /etc/init.d 内のスクリプトから起動されます。ランレベル固有のディレクトリから対応する起動スクリプトへのシンボリックリンクがあります (例: /etc/rc0.d から /etc/rc6.d)
簡単に言うと、/etc/rc.d 内のそれぞれのディレクトリからデーモンの起動スクリプトへのリンクを作成します。リンクの場所によってランレベルが決まります。