Linux 自启动方法

本文介绍了两种在Linux系统中设置程序自启动的方法。第一种方法是在/etc/rc.local中添加程序路径实现自启动;第二种方法是创建服务,包括编写服务启动脚本、设置权限、复制脚本至指定目录并使用chkconfig添加服务。

Linux 自启动方法


 
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://liguxk.blog.51cto.com/129038/217147
   自启动程序方法1
 
etc/rc.local在里面加入/home/robin/code/autoruntest > /dev/null &(其中autoruntest 测试程序名称,下同)。即可自启动
 
 
自启动程序方法2
 
创建linux服务,步骤如下:
1)        写服务启动脚本文件(后附例子)
2)        修改脚本文件chmod 777 autoruntest
3)        脚本文件拷贝到 /etc/rc.d/init.d/
4)        chkconfig --add autoruntest 添加服务
5)        重新启动(完成)
其中到了第三步后就可以使用service启动停止了,要自启动必须使用chkconfig 将服务添加到系统中。
 
要定制系统服务必须要以root用户操作。通过ntsysv命令可以看到系统所有的服务,及其是否和系统一起启动,在这里可以定制系统服务,在这里可以看到测试程序autoruntest已经添加为系统服务了,并且是随着系统运行的。这里可以定制启动的服务,按F1可以看到各个服务的介绍。后附系统服务的介绍。
 
以下是两个开机自启动脚本:
 

if [ `id -u` -ne 0 ] 
then 
echo "ERROR:For bind to port 53,must run as root." 
exit 1 
fi 
case "$1" in 
start) 
if [ -x /usr/local/named/sbin/named ]; then 
for i in `seq 1 8` 
do 
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf -u root        
echo "BIND9-named1$i server started" 
done 
fi 
;; 
stop) 
kill `cat /usr/local/named/var/named.pid` && echo . && echo 'BIND9 server stopped' 
;; 
restart) 
echo . 
echo "Restart BIND9 server" 
$0 stop 
sleep 10 
$0 start 
;; 
reload) 
/usr/local/named/sbin/rndc reload 
;; 
status) 
/usr/local/named/sbin/rndc status 
;; 
*) 
echo "$0 start | stop | restart |reload |status" 
;; 
esac
 
#!/bin/bash 



# autoruntest    the shell script takes care of autoruntest auto start and stop 



# chkconfig:     2345 20 80 

# description: autoruntest 

# processname:         /etc/rc.d/init.d/autoruntest 

    

EXEC_PATH=/home/robin/code 

EXEC=autoruntest 

PID_FILE=/var/run/autoruntest.pid 

DAEMON=/home/robin/code/autoruntest 

    

# Source function library. 

. /etc/rc.d/init.d/functions 

    

if ! [ -x $EXEC_PATH/$EXEC ] ; then 

             echo "ERROR: $EXEC_PATH/$EXEC not found" 

             exit 1 

fi 

    

stop() 



             echo "Stoping $EXEC ..." 

             killall $DAEMON >/dev/null 

             usleep 100 

             echo "Shutting down $EXEC: [    OK    ]"                



    

start() 



             echo "Starting $EXEC ..." 

             $DAEMON > /dev/null & 

             usleep 100 

             echo "Starting $EXEC: [    OK    ]"                     



    

restart() 



             stop 

             start 



    

    

case "$1" in 

             start) 

             start 

             ;; 

             stop) 

             stop 

             ;; 

             restart) 

             restart 

             ;; 

             status) 

             status -p $PID_FILE $DAEMON        

             ;;            

    *) 

             echo "Usage: service $EXEC {start|stop|restart|status}" 

             exit 1 

esac 
exit $? 
chkconfig加载自启动.提示"**服务不支持chkconfig"
原来是自己写的脚本时,忘记写两行了.开头一般要这样写
#!/bin/bash
#chkconfig:345 61 61 //此行的345参数表示,在哪些运行级别启动,启动序号(S61);关闭序号(K61)
#description:Apache //此行必写,描述服务.
 
个服务在这个级别被停止.若前面有一个"s"表示"Start",表示这个服务在这个运行级别被启动.在K或S的
后面有一些数字,这是服务的,当启动服务时,按从小到大启动,当停止服务时,按从大到小停

本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/310774


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值