系統初始化完成後會執行初始化指令碼 rc.local,想要實現開機自動啟動某個功能,可以在這個指令碼增加些執行命令。
rc.local/rc.sysinit,一般為路徑為/etc/rc.d/rc.local或/etc/rc.d/rc.sysinit
可以直接在指令碼退出之前執行某個指令碼或執行某個shell命令
通過update-rc.d *** defaults nn命令(nn為啟動順序) 命令將***指令碼放到初始化執行的佇列中去,以實現自啟。nn代表的是初始化優先順序,如果指令碼需要用到網路等延遲服務,nn需設定乙個比較大的數字,如90,保證指令碼啟動前所依賴服務已經啟動。
與這個命令配合使用的是sudo update-rc.d *** remove,是把***指令碼或功能移除初始化佇列
開發的某個新程式***,如果實現 /etc/int.d/*** start|stop|restart 指令碼控制開關,會方便平時的管理和開機啟動。
這裡對這個指令碼常用實現方法簡單總結下:
1.將可執行程式***放到/usr/local/bin目錄(並修改執行許可權)
sudo mv *** /usr/local/bin/***
sudo chmod +x /usr/local/bin/***
2.在/etc/int.d/目錄下編寫***的控制指令碼,複製如下指令碼即可
#!/bin/sh -e
name=***
daemon=/usr/local/bin/$name
pidfile=/var/run/$name.pid
[ -x "$daemon" ] || exit 0
case "$1" in
start)
if [ -f $pidfile ]; then
echo "$name already running..."
echo -e "\033[1;35mstart fail\033[0m"
else
echo "starting $name..."
start-stop-daemon -s -p $pidfile -m -b -o -q -x $daemon -- param || return 2
echo -e "\033[1;32mstart success\033[0m"
fi;;
stop)
echo "stoping $name..."
start-stop-daemon -k -p $pidfile -s term -o -q || return 2
rm -rf $pidfile
echo -e "\033[1;32mstop success\033[0m"
;;restart)
$0 stop && sleep 2 && $0 start
;;*)
echo "usage: $0 "
exit 1
;;esac
exit 0
需要將name改變成程式的名稱,param是程式執行需要的引數,沒有引數可以刪除調param
完成上面兩步之後即可通過/etc/int.d/*** start|stop|restart 命令控制功能開關
Linux 設定開機自啟
忘記 的 的。方法 1 這種方法會利用 etc 中的 rc.local 檔案來在啟動時執行指令碼與命令。我們在檔案中加上一行來執行指令碼,這樣每次啟動系統時,都會執行該指令碼。不過我們首先需要為 etc rc.local 新增執行許可權,sudo chmod x etc rc.local 然後將要執...
Linux開機自啟指令碼與配置
場景 寫了個有趣的指令碼start.sh,需求是開機後自啟,最好還可以定義多久自啟。環境 linux ubuntu20.04 指令碼目錄 home bear start.sh method 1 使用 crontab 最為簡單的方式 建立乙個 cron 任務,這個任務在系統啟動後等待 5秒,然後執行命...
redis設定開機自啟
開機自啟動redis 其他服務類似 centos 7以上是用systemd進行系統初始化的,systemd 是 linux 系統中最新的初始化系統 init 它主要的設計目標是克服 sysvinit 固有的缺點,提高系統的啟動速度。systemd服務檔案以.service結尾,比如現在要建立redi...