在启动或者关闭期间,会调用许多旧的 rc init 脚本。
内核在引导过程中启动 svc.startd 守护进程后,svc.startd 守护进程根据运行级别执行 /sbin 目录中的 rc 脚本。
每个运行级别在 /sbin 目录中都有一个关联的脚本。
# ls -l /sbin/rc? -rwxr--r-- 3 root sys 1678 Sep 20 2012 /sbin/rc0 -rwxr--r-- 1 root sys 2031 Sep 20 2012 /sbin/rc1 -rwxr--r-- 1 root sys 2046 Sep 20 2012 /sbin/rc2 -rwxr--r-- 1 root sys 1969 Sep 20 2012 /sbin/rc3 -rwxr--r-- 3 root sys 1678 Sep 20 2012 /sbin/rc5 -rwxr--r-- 3 root sys 1678 Sep 20 2012 /sbin/rc6 -rwxr--r-- 1 root sys 4069 Sep 20 2012 /sbin/rcS
每个 rc 脚本运行相应的 /etc/rc?.d/K* 和 /etc/rc?.d/S* 脚本。
例如,对于运行级别 3,以下脚本将由 /sbin/rc3 执行:
/etc/rc3.d/K* /etc/rc3.d/S*
启动和停止运行脚本的语法是
S##name_of_script - Start run control scripts K##name_of_scrips - Stop run control scripts
注意大写中的 S 和 K。
以小 s 和 k 开头的脚本将被忽略。
这可用于禁用该特定运行级别的脚本。
由 rc 脚本执行的任务
每个运行级别都与一组在该运行级别执行特定作业的 rc 脚本相关联。
RC 脚本 | 执行的任务 |
---|---|
rc0 | 关闭并启动系统,以便安全关闭电源。 它还关闭系统服务和守护进程,终止正在运行的进程并卸载文件系统。 |
rc1 | 使系统进入单用户模式。 它还停止系统服务和守护进程,杀死正在运行的进程并卸载文件系统。 |
rc2 | 启动多用户操作,但不支持网络和 NFS。 它还清理 "/tmp" 和 "/var/tmp" 目录,加载网络接口,并启动 cron、lp 和 sendmail。 |
rc3 | 启动正常的多用户模式。 在运行状态 2 下执行任务并启动 NFS 守护进程。 |
rc4 | 没用过 |
rc5 | 启动交互式软件重新启动。 它会提示备用引导设备。 |
rc6 | 重新启动系统。 |
rcS,s | 在安装了一些文件系统的情况下启动单用户状态。 |
on it road.com
故障排除
1.在RC脚本中设置调试模式
要在 Solaris 10 中调试旧版 rc init 脚本,可以将“set -x”临时添加到脚本的第二行以显示脚本的行为
例子
# head -2 /etc/rc3.d/S50apache #!/sbin/sh set -x ...
重启后在 /var/svc/log/milestone-multi-user-server:default.log 中显示输出。
2.检查语法
启动脚本文件以“S”开头,终止脚本文件以“K”开头。
确保大写的“S”和“K”在适当的脚本中就位。
将 S 更改为 K 或者将字母变为小写会导致脚本功能发生变化。
3. 确定将执行哪个 rc 级脚本
/etc/inittab 文件根据系统引导到的运行级别确定将执行哪个 rc 级别脚本。
确保 rc 脚本位于正确的 rc 脚本文件夹中。
4.检查软链接和权限
检查以下文件/目录的正确软链接和权限。
# ls -lrt /etc/rc? lrwxrwxrwx 1 root root 11 Nov 23 2014 /etc/rc0 -> ../sbin/rc0 lrwxrwxrwx 1 root root 11 Nov 23 2014 /etc/rc1 -> ../sbin/rc1 lrwxrwxrwx 1 root root 11 Nov 23 2014 /etc/rc2 -> ../sbin/rc2 lrwxrwxrwx 1 root root 11 Nov 23 2014 /etc/rc3 -> ../sbin/rc3 lrwxrwxrwx 1 root root 11 Nov 23 2014 /etc/rc5 -> ../sbin/rc5 lrwxrwxrwx 1 root root 11 Nov 23 2014 /etc/rc6 -> ../sbin/rc6 lrwxrwxrwx 1 root root 11 Nov 23 2014 /etc/rcS -> ../sbin/rcS
# ls -lrt /etc/init lrwxrwxrwx 1 root root 12 Nov 23 2014 /etc/init -> ../sbin/init
日期:2020-09-17 00:15:25 来源:oir作者:oir