一、什麼是開機自啟動腳本
開機自啟動腳本是指在操作系統啟動時自動執行的腳本文件,主要用於配置系統環境、啟動進程等操作。一般情況下,這些腳本都存放在系統的啟動目錄中。
二、開機自啟動腳本的優點
開機自啟動腳本具有以下優點:
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-tw/n/332769.html