Linux開機自啟動在項目中應用很常見,突然停電或者故障,程序總歸要關掉的,如果手動去啟動程序,比較麻煩,所以開機自啟動是非常重要的一環(huán)。??在Debian或者Ubuntu中,開機之后會調(diào)用一個腳本文件:/e...
Linux開機自啟動在項目中應用很常見,突然停電或者故障,程序總歸要關掉的,如果手動去啟動程序,比較麻煩,所以開機自啟動是非常重要的一環(huán)。
??在Debian或者Ubuntu中,開機之后會調(diào)用一個腳本文件:/etc/rc.local,所以在這個文件中寫好要啟動的程序即可。Debian linux發(fā)行版系統(tǒng)現(xiàn)在可能沒有rc.local文件了,不過沒有關系,直接在/etc文件下新建一個rc.local文件即可,開機就會運行該程序。
??所以只要在該文件中直接啟動你的程序即可,或者也可以啟動一個腳本文件(.sh),在這個腳本文件中啟動要啟動的程序,下面就是rc.local文件內(nèi)容的實例。
#!/bin/bash -e
location="/home/debian" #腳本路徑
cd $location
$location/rc.sh
$location/run.sh
exit 0
1
2
3
4
5
6
??上面的rc.local文件中就另行啟動了腳本文件(rc.sh)來運行自己的程序,以下就是rc.sh的內(nèi)容,啟動gateway程序。
#!/bin/sh
location=/home/debian/gateway20191211
echo $location
cd $location
find $location/log -mtime +7 -type f |xargs rm -f
out=$(date "+%Y-%m-%d")".txt"
pwd
$location/gateway >> $location/log/$out
1
2
3
4
5
6
7
8
9
??細心的朋友可能還發(fā)現(xiàn)其實上面rc.local運行了兩個腳本,但是實際運行過程中只啟動了第一個,這是因為第一個程序運行還沒有結束,就不會運行第二個程序,所以這樣基本上就不會個程序同時啟動。
??如果要同時啟動兩個程序,則需要這樣來寫腳本文件,將兩個腳本文件相與。
#!/bin/bash -e
location="/home/debian" #腳本路徑
cd $location
$location/run.sh & $location/GetPID.sh
exit 0
1
2
3
4
5
??此外如果還需要設計一個進程看門狗,監(jiān)控該程序是否運行,則可以這樣來寫腳本:(先獲取進程PID,然后再監(jiān)控該PID是否存在)
#!/bin/bash
while true
do
process=gateway #監(jiān)控的程序運行名
pid=$(ps -ef|grep $process |grep '/home/debian' | grep -v grep |awk '{print $2}')
echo $pid
if [ $pid -ne 0 ]
then #如果程序PID在,則程序在運行
echo `date`
echo “pid is exitable!”
else #否則程序沒有運行,需要啟動程序 啟動的程序在run.sh文中。
echo `date`
echo "pid isnot exitable!"
sudo sh run.sh >> $(date "+%Y-%m-%d")".txt"
fi
sleep 15s
done
exit 0
該腳本一開機就運行,監(jiān)控程序PID,如果發(fā)現(xiàn)沒有,立即啟動,15s檢查一次。
————————————————
版權聲明:本文為CSDN博主「張一西」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_34430371/article/details/104471701
來源:本文內(nèi)容搜集或轉自各大網(wǎng)絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發(fā)布,請聯(lián)系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內(nèi)容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。
Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺保留所有權利
蘇公網(wǎng)安備32010402000125
蘇ICP備14051488號-3技術支持:南京博盛藍睿網(wǎng)絡科技有限公司