在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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21544.html