linux實現開機自啟動腳本


Linux下(以RedHat為范本)添加開機自啟動腳本有兩種方法,先來簡單的;

一、在/etc/rc.local中添加
如果不想將腳本粘來粘去,或創建鏈接什么的,
則:
step1. 先修改好腳本,使其所有模塊都能在任意目錄啟動時正常執行;
step2. 再在/etc/rc.local的末尾添加一行以絕對路徑啟動腳本的行;
如:
$ vim /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
. /etc/rc.d/rc.tune
/opt/pjt_test/test.pl

保存並退出;
再重啟動測試下,則在其它的程序都啟動完成后,將啟動腳本;

二、init.d目錄下都為可執行程序,他們其實是服務腳本,按照一定格式編寫,Linux 在啟動時會自動執行,類似Windows下的服務

用root帳號登錄,vi /etc/rc.d/init.d/mystart,追加如下內容:

#!/bin/bash
#chkconfig:2345 80 05 --指定在哪幾個級別執行,0一般指關機,
6指的是重啟,其他為正常啟動。80為啟動的優先級,05為關閉的優先機
#description:mystart service
RETVAL=0
start(){ --啟動服務的入口函數
echo -n "mystart serive ..."
cd /home/test1
su test1 -c "python /home/test1/test.py"

}

stop(){ --關閉服務的入口函數
echo "mystart service is stoped..."
}

case $1 in --使用case,可以進行交互式操作
start)
start
;;
stop)
stop
;;
esac
exit $RETVAL

3、運行chmod +r /etc/rc.d/init.d/mystart,使之可直接執行

4、運行chkconfig --add mystart,把該服務添加到配置當中

 

5、運行chkconfig --list mystart,可以查看該服務進程的狀態

 

 

例子:

#!/bin/bash
#chkconfig:2345 80 05 --指定在哪幾個級別執行,0一般指關機,6指的是重啟,其他為正常啟動。80為啟動的優先級,05為關閉的優先機
#description:mqtt service
RETVAL=0
start(){
echo -n "mqtt serive ..."
cd /home/dpf
su dpf -c "./hwjc_udp_receive &"

}

stop(){
echo "mqtt service is stoped..."
}

case $1 in
start)
start
;;
stop)
stop
;;
esac
exit $RETVAL

3、運行chmod +r /etc/rc.d/init.d/mqtt,使之可直接執行

 

4、運行chkconfig --add mqtt,把該服務添加到配置當中

 

5、運行chkconfig --list mqtt,可以查看該服務進程的狀態

即可重啟系統,

查看C程序是否自動啟動

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM