私は多数のPUIAS(RedHat)6.4サーバーとデスクトップを持っています。コンピューティングノードを再起動した後(単にテスト目的で)、初期インストール後に手動で起動された多くのデーモン(ipmi、mcelog、fall2ban)が実行されず、手動で再起動する必要があることがわかりました。サーバーはランレベル3(GUIなし)で実行されていると想定されます。デスクトップの同じOSバージョン(ランレベル5)で同様の操作を実行すると、まったく異なる結果が得られます。つまり、すべてのデーモンが正しく起動します。
これは例外ですか? /etc/init.dスクリプトを編集する必要がありますか、サービスを開始するためにスクリプトを作成する必要がありますか?他に「正しい」方法がありますか?
私は/etc/rc.conf.localを編集するとビルドされたデーモンが起動し、/etc/rc.localを編集すると他のすべてのデーモンが起動するOpenBSDの世界から来ました。
答え1
(私は賢明なことを言うのではありません。あなたがどれだけ知っているかわからないので、基本的にここでは脳死の状態です。)
まず、Red Hatは基本的にインストールして有効にするためにいくつかの奇妙な項目を選択することに注意してください。たとえば、RHEL5またはRHEL6がインストールされます。あふれ起動時に起動するようにしてください。どちらのバージョンでも選択できるほぼすべてのインストールプロファイルに対してカップをインストールしてアクティブにすると思います。 RHEL6はデフォルトではインストールされていませんman
。
RHELでは、次の3つの方法でサービスを管理できます。
- 以下のシンボリックリンクを手動で変更する
/etc/rc.d
か、/etc/rcX.d
- 使用
chkconfig
(同じ名前のIRIXツールをモデル化) setup
パッケージが提供するコマンドを使用しますsetuptool
(初期インストール中に選択した設定ファイルによってはインストールまたはインストールされない場合があります)。
それぞれの詳細:
手動管理:
RHEL / System Vの起動順序は次のとおりです。
/etc/rc.sysinit
実行すると、オペレーティングシステムの重要な部分の大部分(重要なファイルシステムなど)が所定の位置に配置されます。init
それでは見てください/etc/rcX.d
(どこ?名前がandで始まる場合は/で
S
スクリプトします。start
argv[1]
$1
名前がaで始まると、サービス
K
は停止します(またはkills
)。K
慣例的に、依存関係は、または後に続く数字を変更することによって処理されます。S
これは、アルファベット位置のみを変更する効果のみです。
内部のすべてを実行します。
/etc/rc.local
実際のサービススクリプトが配置されます/etc/rc.d/init.d
(onにもシンボリックリンクされています/etc/init.d
)。サービスをランレベル3(ネットワークはありますがGUIはありません)で開始するには、次のようにします。
# cd /etc/rc3.d
# ln -s /etc/init.d/myService S99myService
chkconfigの使用
デフォルトでは、目的chkconfig
は上記のプロセスを自動化することです。 initscriptを使用する前に特定のヘッダーを持たなければならないという欠点がありますchkconfig
。たとえば、以下はネットワークサービスの開始です。
#! /bin/bash
#
# network Bring up/down networking
#
# chkconfig: 2345 10 90
# description: Activates/Deactivates all network interfaces configured to \
# start at boot time.
#
### BEGIN INIT INFO
# Provides: $network
### END INIT INFO
これにより、chkconfig
依存関係が正しく機能するためにどの番号を設定/変更する必要があるかを判断できます。順序を変更する機能は失われますが、上記の理由により実際には重要ではありません。
chkconfig
より簡単で正直なところ、私はほとんどの時間を使うことです。
次の機能により、どのサービスがどのランレベルで構成されているかを確認できますchkconfig --list
。
[root@ditirlns01 ~]# chkconfig --list | head
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
arptables_jf 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:on 5:on 6:off
auditd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:off 3:off 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:off 4:on 5:on 6:off
avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
capi 0:off 1:off 2:off 3:off 4:off 5:off 6:off
または、特定のサービスのステータスを確認してください。
[root@ditirlns01 ~]# chkconfig --list auditd
auditd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig <serviceName> on
上記の例に進むと、サービスを有効にできます。
[root@ditirlns01 ~]# chkconfig auditd on
[root@ditirlns01 ~]# chkconfig --list auditd
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
見て、再びレベル3〜5を実行するサービスchkconfig
が有効になります。auditd
これを望まない場合は、この--levels
オプションを使用してアクティブにする特定のランレベルを設定できます。
[root@ditirlns01 ~]# chkconfig auditd off
[root@ditirlns01 ~]# chkconfig auditd on --levels=3
[root@ditirlns01 ~]# chkconfig --list auditd
auditd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
インストールツールの使用
setup
一般的な管理作業を容易にするために設計された最新バージョンのシステム管理です。 Red Hatがこれを実現するために必要なものをすべてインストールできる場合は、そのように機能します。しかし、RHEL6からsetuptool
機能を複数のパッケージに分けました(より包括的にしてメニューを邪魔しないように)。
chkconfig
これは、特定のランレベルを選択できないことを除いて、非常に説明が必要なncursesベースのラッパーです。
それ以外にはあまり言うことはありません。
あなたの質問に答えがあれば教えてください。