ただのメモ※cron、rc、rc.local、rsyslogの関係をスッキリさせる。

cronの調査は進めた。
次はrc、rc.local、rsyslogについて同様の調査を行う。
よく似た名前でよくわからない。

kazmax.zpp.jp

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の中にある。

www.infraeye.com

ややこしいが、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コマンド ・RedHatLinuxディストリビューションでは、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の関係で詰まることはなくなったはずである。

今後はそれぞれの動きを追っていきたい。