启动程序你需要分清楚,是一般的程序还是服务

对于有些服务开机要启动,关机的时候还要关闭,所以,比较好的方法是写服务脚本,然后放到/etc/init.d,然后在相应的运行级启动目录中添加链接。

如果只是一般的程序,并且关机时不需要退出。那么加在任何一个自启动的脚本都可以。下面结合condor启动的设计作一下详细的介绍:

第一:确定你的运行级,就是/etc/inittab文件的id:X:initdefault那一行,该行指出了你的机器默认启动的运行级别,我的X=5,是X11启动方式。获得了运行级,我们下面就可以找到对应启动脚本的目录,例如运行级是3那么,启动自动执行/etc/rc3.d,如果是5就是/etc/rc5.d。里面有一堆链接,随便你写在任何一个链接的目标文件中,但那些多数是服务脚本,有start和stop段(修改rc.local,是不分运行级的)。

第二:编写服务脚本,如果有现成的,可以不用编写,直接复制到/etc/init.d/目录下即可。我的condor启动服务脚本是condor.boot。如下所示:

MASTER=/usr/local/condor/sbin/condor_master

PS="/bin/ps auwx"

case $1 in

'start')

   if [ -x $MASTER ]; then

       echo "Starting up Condor"

       $MASTER

   else

       echo "$MASTER is not executable.  Skipping Condor startup."

       exit 1

   fi

   ;;

 

'stop')

   pid=`$PS | grep condor_master | grep -v grep | awk '{print $2}'`

   if [ -n "$pid" ]; then

       echo "Shutting down Condor (fast-shutdown mode)"

       kill -QUIT $pid

   else

       echo "Condor not running"

   fi    

   ;;

 

'restart')

    $0 'stop'

    sleep 10

    $0 'start'

   ;;

*)

 

   echo "Usage: condor {start|stop|restart}"

   ;;

esac

 

第三:在自己机器运行级对应的启动脚本目录中添加指向condor.boot的软连结

cd /etc/rc.d/rc5.d

ln -s ../init.d/condor.boot ./condor

第四:重新启动,认真观察启动选项,看看有没有错误,然后根据错误做相应的修改即可。