cronの調査は進めた。
次はrc、rc.local、rsyslogについて同様の調査を行う。
よく似た名前でよくわからない。
cron は /etc/rc または /etc/rc.local から起動されるべきである。 すぐに(シェルに)戻るので、'&' を付けて起動する必要はない。
(cron は /etc/passwd にあるアカウントをファイル名に持つ crontab ファイルを /var/cron/tabs から探し、見つけた crontab ファイルをメモリに読み込む。 また cron は /etc/crontab も見る (このファイルのフォーマットは少々異なっている: crontab (5)を参照)。 cron は 1 分ごとに起きて、読み込まれた crontab ファイルを評価し、 それぞれのコマンドを今起動すべきかどうかチェックする。 コマンドを実行すると、全ての出力を crontab ファイルの所有者にメールする (または MAILTO 環境変数が crontab ファイルにあれば、 そこで指定されたユーザーに送る)。)
→どういう意味か?
おそらく、/etc/crontabや、/etc/cron.d、/var/spool/cron/userは、/etc/rcもしくは/etc/rc.localから起動されているということ。
そもそもcronを使用するためにはcrondを使用する。
# /etc/rc.d/init.d/crond status
rc.dの中にある。
ややこしいが、RedHat系のLinuxディストリビューションでは /etc/rc.d/init.d が実物の起動用スクリプトの格納場所。
/etc/init.d が /etc/rc.d/init.d へのシンボリックリンクになっているため、RedHat系でも /etc/init.d/~ でコマンドが実行可。
起動スクリプト | 説明 |
---|---|
/etc/init.d/network | ネットワークサービス |
/etc/init.d/crond | cronサービス |
/etc/init.d/cups | 印刷サービス |
/etc/init.d/rsyslog | シスログサービス |
/etc/init.d/ntpd | NTPサービス |
/etc/init.d/sshd | SSHサービス |
/etc/init.d/posfix | Postfixメールサービス |
/etc/init.d/httpd | Apache Webサービス |
◆ chkconfigコマンド
・RedHat系Linuxディストリビューションでは、chkconfigコマンドで自動起動、自動停止用のシンボリックリンクを作成することができる。
・例えば、Linuxシステム起動後に毎回同様の操作で「Apache」を起動するのが面倒な場合、chkconfigコマンドを使用すればLinux起動時に自動的に起動させることが可能。
◆ 構文 : chkconfig サービス名 on | off | reset
◆ 実行例 : Linuxシステム起動時にApache Webサーバも自動的に起動させる
# chkconfig httpd on
自動起動するように設定されているかどうかは、--listオプションを指定すれば確認することができます。 以下ではランレベル2~5でLinuxシステムを起動した場合にApacheが自動的に起動することが分かる。
# chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Linuxシステム起動時に、どのランレベルでサービスを自動起動させるかどうかを指定したい場合には 以下の構文通り「--level」を指定する。chkconfig httpd on とだけ指定した場合にはランレベルが 2~5 が on になるので、以下のコマンドを実行すれば、同じ効果が得られることになる。
# chkconfig httpd --level 2345 httpd on
(調査結果)
rsyslogはログ管理でcronから呼び出される。
?
両者の関係はそういうこと。
syslogjはここを参照
kenji148.hatenablog.com
では、rc.localは何者か?
/etc/rcも怪しい。
ただこの辺は色々あり関係がよくわらない。
https://www.turbolinux.co.jp/products/server/11s/user_guide/rc.html
/etc/rc.sysinit スクリプトにより Turbolinux 11 Server の初期化処理が完了すると、/sbin/init プログラムは、ランレベルを引数にして /etc/rc スクリプトを実行します。例えば、ランレベル 3 で Turbolinux 11 Server を起動したときは /etc/rc 3 が実行され、ランレベル 5 で起動したとき /etc/rc 5 が実行されます。この /etc/rc は、各ランレベルで開始するサービスを制御するためのスクリプトです。/etc/rc はその中で、/etc/rcn.d/ (n はランレベルの数字)に格納されているスクリプトを実行します。つまり、ランレベル 3 のときは、/etc/rc3.d/ ディレクトリにあるスクリプトが実行されることになります。ls -l コマンドで /etc/rc3.d/ ディレクトリを確認すると、以下のようなファイルが格納されています。
→上記は個別の商品の説明である。rcは記載が少なすぎる。
rc.local(8) manページ
ここに欲しい情報があった。
以下抜粋
今日では、典型的には /usr/local/etc/rc.d/ の機構が rc.local の代りに使用されます。 しかしながら、 rc.local を使用したいのであればこれはまだサポートされています。 この場合、 rc.local が /etc/rc.conf を読み取るようにしてから、 あなたのシステム特有の更なるカスタムスタートアップコードを rc.local に追加してください。
(調査結果)
以上でcron、rc、rcloca、rsyslogの関係で詰まることはなくなったはずである。
今後はそれぞれの動きを追っていきたい。