一、什麼是開機自啟動腳本
開機自啟動腳本是指在操作系統啟動時自動執行的腳本文件,主要用於配置系統環境、啟動進程等操作。一般情況下,這些腳本都存放在系統的啟動目錄中。
二、開機自啟動腳本的優點
開機自啟動腳本具有以下優點:
1、無人值守:由於是自動啟動,無需人工干預。
2、自動化管理:可以通過修改腳本文件的方式來添加、刪除需要自動啟動的項目,方便快捷。
3、節省時間:相較於手動開啟多個進程,使用自啟動腳本可以節約大量的時間。
三、開機自啟動腳本的實現方式
在Linux系統中,有多種方式可實現開機自啟動,下面我們來詳細介紹兩種比較常見的方式。
1. 將啟動腳本存放在/etc/rc.d/init.d/目錄下
這是比較常見的一種方式,步驟如下:
1、編寫腳本:比如我們要在系統啟動時啟動nginx服務,則需要編寫一個啟動nginx的腳本文件,可以取名為nginx。
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: nginx is a World Wide Web server.
# It is used to serve HTTP and HTTPS both.
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
reload() {
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
reload)
rh_status_q || exit 0
$1
;;
force-reload)
force_reload
;;
restart)
stop
start
;;
status)
rh_status
;;
configtest)
configtest
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|force-reload|status|help|configtest}"
exit 1
esac
exit $?
其中,必須包含如下幾個函數:start、stop、reload等,用於啟動、停止、重啟nginx服務等操作。
2、賦予腳本可執行權限:
chmod +x nginx
3、將腳本添加至系統啟動項中:
chkconfig --add nginx chkconfig nginx on
4、確認nginx是否成功添加至啟動項中:
chkconfig --list nginx
執行以上命令,如果看到如下內容,則說明nginx已成功添加啟動項:
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2. 將啟動腳本保存在/etc/systemd/system/目錄下
這是一種比較新的啟動方式,步驟如下:
1、編寫腳本:同上,以nginx服務為例,需要編寫nginx.service文件。
[Unit] Description=The nginx HTTP Server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true [Install] WantedBy=multi-user.target
2、將腳本保存至/etc/systemd/system/目錄下:
cp nginx.service /etc/systemd/system/
3、更新systemd配置並啟用服務:
systemctl daemon-reload systemctl start nginx systemctl enable nginx
4、確認nginx是否成功添加至啟動項中:
systemctl list-unit-files|grep nginx
若出現如下內容,則說明nginx已成功添加:
nginx.service enabled
四、開機自啟動腳本的注意事項
1、應該將啟動腳本存放在系統的啟動目錄下,以確保系統啟動時會自動執行。
2、腳本文件必須要有可執行權限,才能被自動執行。
3、在寫腳本時,應該加上一些判斷語句,以確保腳本的正確性。
4、應該查看系統日誌,以確保腳本是否被正確執行。
5、注意手動啟動服務和開機自啟動服務之間的衝突問題。
五、總結
開機自啟動腳本在Linux系統中有着廣泛的應用。本文詳細介紹了兩種實現方式,並提出了一些注意事項,希望能夠幫助讀者更好地理解和使用開機自啟動腳本。
原創文章,作者:HZYIR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/332769.html
微信掃一掃
支付寶掃一掃