
Ubuntu に /etc/init.d に置いたスクリプトがあります。0755 権限があり、手動で実行およびソース化することができ、良好な結果が得られます。/etc/rc3.d と /etc/rc5.d の両方に、どちらも S01raid という名前で init.d スクリプトを指すシンボリックリンクがあります。しかし、マシンを再起動すると、スクリプトが実行されないようです。アレイがマウントされたり、実行されたりしているのが見られず、ps -A 出力でモニター デーモンが実行中であることも確認できません。
ここで何が欠けているのでしょうか?
スクリプトの内容:
#!/bin/sh -e
modprobe raid5
mdadm --assemble --scan
mdadm --monitor --scan --daemonize --delay 120 --program /etc/mdadm/scram.sh
mount -t xfs /dev/md0 /mnt/
答え1
起動時にスクリプトを実行するには、標準ツールに従うことをお勧めします。
見るこの答え同様の質問に対して、私は従うべき手順をリストしました。また、その質問で別のユーザーが述べたように、テスト目的では、コマンドを /etc/rc.local の「exit 0」の前に配置します。
また、これを実行するときに、これに依存するサービスがすでに開始されていることを確認する必要があります。/var/log のログでエラー メッセージを確認してください。
答え2
「S01」は、起動プロセスのかなり早い段階で実行されることを意味します。最初に行うことは、後で実行する必要があるもの(数字が大きいもの)がないことを確認することです。
私の Ubuntu システムでは、sysklogd は S10、mdadm は S25 なので、少なくともそれらよりも高く設定して、何かがログに記録されるかどうかを確認できるようにします。