我在 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,因此至少要使其高于这些,这样您才能看到它是否记录任何内容。