在SUSE Linux 10 中使用rc.local
SUSE10中没有rc.local, 感觉用起来不是很方便
suse linux 没有这个档案,另外策略就是也不喜欢使用者这样管理启动服务。
若你有某各服务服务需要是在进入 runlevel 后才执行的话,于 suse 下正规做法应该是自己写一个 rc script 档案放置于 /etc/init.d/ 目录内,然后使用 chkconfig or inssev 程式来管理配置能够于某个 runlevel 环境开机时是否要启用关闭该服务项目。
该 rc script 档案写法可以自己参考一下 /etc/init.d/ 里面现成的 script 档案,应该很容易就写一个自己的版本。
另外 suse 有个 /etc/init.d/boot.local 档案是由 /etc/init.d/boot 这个 script 所启动的,而且是最后 boot script 工作完成要准备进入 runlevel 环境执行各项 rc script 前所执行。而 rh 的 /etc/rc.d/rc.local 档案是 runlevel 环境执行各项 rc script 时最后一个阶段执行的。
所以若你要跑的程式适合于 runlevel 这项服务之前就执行的话,suse linux 可以放于 boot.local 档案。
1 方法一
1.1 步骤一
编辑/etc/init.d/rc脚本,在最后一个exit 0之前,加入以下内容:
rc_local=/etc/rc.d/rc.local
current_runlevel=$(runlevel | awk '{ print $NF }')
if [ -x $rc_local ];then
((current_runlevel>1)) && ((current_runlevel<6)) && {
echo -e "\n\n\n"
echo "-----------------------Startup $rc_local---------------------------"
$rc_local
}
fi
以上为脚本内容
1.2 步骤二
然后创建/etc/rc.local文件,并赋予755权限:
chmod 0755 /etc/rc.d/rc.local
2 方法二
2.1 步骤一
创建/etc/rc.d/rclocal文件,加入以下内容:
case "$1" in
start)
if ! test -x /etc/init.d/rc.local ; then
echo '/etc/rc.local is not exsit!'
exit 1
fi
/etc/init.d/rc.local &
;;
stop)
;;
esac
以上为脚本内容
2.2 步骤二
创建/etc/rc.d/rc.local,把你要开机执行的脚本都加到里面
2.3 步骤三
chmod 0755 /etc/rc.d/rc.local /etc/rc.d/rclocal
2.4 步骤四
chkconfig --add rclocal