新聞中心
如何在Linux系統(tǒng)中設(shè)置開機自動啟動

Linux系統(tǒng)是一個開源的操作系統(tǒng),因其穩(wěn)定、安全以及靈活的特性,在各個領(lǐng)域都被廣泛應(yīng)用。在Linux系統(tǒng)中,我們可以通過設(shè)置開機自動啟動來方便地管理我們開機需要運行的程序或服務(wù)。本文將詳細(xì)介紹如何在Linux系統(tǒng)中設(shè)置開機自動啟動。
一、使用systemd啟動器
systemd是Linux系統(tǒng)中較新的啟動器,它用于管理系統(tǒng)各個方面的服務(wù)。在Linux系統(tǒng)的大部分發(fā)行版中,采用systemd作為默認(rèn)的啟動器。下面介紹如何使用systemd設(shè)置開機自動啟動服務(wù)或程序。
1. 將需要開機自動啟動的服務(wù)或程序設(shè)置為服務(wù)
在Linux中,我們可以使用systemd將需要開機自動啟動的服務(wù)或程序設(shè)置為服務(wù)。服務(wù)的優(yōu)點是方便管理、控制、啟動和關(guān)閉。下面以開機自動啟動Nginx為例進行演示:
“`
1. 在/etc/systemd/system/目錄下創(chuàng)建nginx.service文件;
2. 編輯nginx.service文件,輸入以下內(nèi)容:
[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/in/nginx -t
ExecStart=/usr/in/nginx
ExecReload=/bin/kill -s HUP $MNPID
ExecStop=/bin/kill -s TERM $MNPID
[Install]
WantedBy=multi-user.target
“`
通過上面的代碼,我們可以看到Nginx服務(wù)的各個配置。啟動方式為forking,PID文件為/run/nginx.pid,服務(wù)啟動前會執(zhí)行nginx -t測試配置,服務(wù)啟動時會執(zhí)行/usr/in/nginx命令,重啟服務(wù)時會執(zhí)行/bin/kill -s HUP $MNPID命令,停止服務(wù)時會執(zhí)行/bin/kill -s TERM $MNPID命令。
3. 運行以下命令啟動nginx.service服務(wù):
sudo systemctl start nginx.service
4. 使用以下命令檢查服務(wù)是否已經(jīng)啟動:
sudo systemctl status nginx.service
如果服務(wù)已經(jīng)啟動,則會打印出Nginx服務(wù)的狀態(tài)信息。
5. 使用以下命令將服務(wù)設(shè)置為開機自動啟動:
sudo systemctl enable nginx.service
2. 使用rc.local腳本啟動程序
rc.local是Linux系統(tǒng)中常用的腳本文件之一,它可以在系統(tǒng)啟動時自動執(zhí)行。在rc.local腳本中,我們可以設(shè)置需要在系統(tǒng)啟動時運行的命令或程序。下面介紹如何使用rc.local腳本啟動程序。
1. 使用以下命令打開rc.local文件:
sudo nano /etc/rc.local
2. 在rc.local文件中添加需要開機自動啟動的程序命令。例如,啟動OpenVPN時,我們可以添加以下命令:
sudo openvpn –config /etc/openvpn/client.ovpn
在上述代碼中,我們需要指定OpenVPN客戶端的配置文件路徑。如果我們希望啟動其他程序,只需要將對應(yīng)的程序命令添加到rc.local文件中即可。
3. 使用以下命令保存rc.local文件并退出:
Ctrl + X,按Y鍵,再按Enter鍵
4. 運行以下命令將rc.local文件設(shè)置為可執(zhí)行文件:
sudo chmod +x /etc/rc.local
這樣,我們就可以在Linux系統(tǒng)重啟后自動執(zhí)行rc.local文件中設(shè)置的命令或程序。
二、使用systemd-timer定時器
除了使用systemd啟動器和rc.local腳本設(shè)置開機自動啟動程序,我們還可以使用systemd-timer定時器來定時啟動程序。下面介紹如何使用systemd-timer定時器進行設(shè)置。
1. 創(chuàng)建需要定時啟動的服務(wù)或程序
在Linux系統(tǒng)中,我們可以使用systemd的timer來定時啟動服務(wù)或程序。下面以每天自動備份MySQL數(shù)據(jù)庫為例進行演示:
我們需要創(chuàng)建一個名為backup.timer的定時器配置文件,確保其啟動截止時間是下一天早上。使用以下命令創(chuàng)建文件:
sudo nano /etc/systemd/system/backup.timer
編輯文件,加入以下代碼:
“`
[Unit]
Description=Back up database
[Timer]
OnCalendar=*-*-* 5:30:00
Unit=backup.service
[Install]
WantedBy=timers.target
“`
在上述代碼中,我們配置了計劃每天早上5:30自動執(zhí)行數(shù)據(jù)庫備份。backup.service表示在定時器觸發(fā)時啟動的服務(wù)。
2. 創(chuàng)建需要啟動的服務(wù)
創(chuàng)建名為backup.service的文件,文件內(nèi)容如下:
“`
[Unit]
Description=Dly backup of MySQL database
[Service]
Type=oneshot
ExecStart=/bin/bash -c “/usr/bin/mysqldump -u root -pPASSWORD database > /var/backups/$(date +%Y-%m-%d)-backup.sql”
[Install]
WantedBy=multi-user.target
“`
文件中ExecStart中mysqldump命令的部分可以根據(jù)各自的需要自行修改。
3. 使用以下命令啟動服務(wù)并確認(rèn)啟動:
sudo systemctl start backup.service
sudo systemctl status backup.service
4. 使用以下命令啟動定時器并確認(rèn)啟動:
sudo systemctl start backup.timer
sudo systemctl status backup.timer
5. 使用以下命令將定時器設(shè)置為開機自動啟動:
sudo systemctl enable backup.timer
三、使用init.d腳本
在Linux系統(tǒng)中,我們也可以使用init.d腳本設(shè)置開機自動啟動。在使用init.d腳本時,我們需要將腳本存儲在/etc/init.d/目錄下。下面介紹如何使用init.d腳本設(shè)置開機自動啟動。
1. 創(chuàng)建需要啟動的服務(wù)的init.d腳本
下面以啟動一個名為application_server的服務(wù)為例進行演示。我們需要創(chuàng)建一個init.d腳本,我們可以復(fù)制其他已經(jīng)存在的init.d腳本進行修改。下面是一個模板腳本:
“`
#!/bin/sh
# chkconfig: 2345 99 01
# description: application_server
start(){
echo “Starting application_server”
/usr/bin/application_server
}
stop(){
echo “Stopping application_server”
killall application_server
}
case “$1” in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo “Usage: /etc/init.d/application_server {start|stop|restart}”
exit 1
;;
esac
exit 0
“`
在該腳本中,我們需要替換/usr/bin/application_server為我們需要啟動的命令或程序的路徑。
2. 將腳本文件復(fù)制到/etc/init.d/目錄下,并設(shè)置腳本的權(quán)限
在完成上面的操作后,我們需要將腳本文件復(fù)制到/etc/init.d/目錄下,并設(shè)置腳本的權(quán)限。使用以下命令進行復(fù)制和權(quán)限設(shè)置:
sudo cp /path/to/application_server /etc/init.d/application_server
sudo chmod +x /etc/init.d/application_server
3. 使用以下命令啟動服務(wù):
sudo service application_server start
4. 使用以下命令將服務(wù)設(shè)置為開機自動啟動:
sudo chkconfig –level 2345 application_server on
結(jié)束語
通過上面的介紹,我們可以看到,在Linux系統(tǒng)中設(shè)置開機自動啟動的方法有多種。使用systemd啟動器、rc.local腳本、systemd-timer定時器以及init.d腳本都是常見的方法。根據(jù)需要選擇適合的方法進行設(shè)置即可。
相關(guān)問題拓展閱讀:
- linux開機自啟動命令
linux開機自啟動命令
用戶想要在linux開機的時候自啟動相關(guān)的程序。那我們要怎么設(shè)置呢?下面由我為大家整理了linux下開機自啟動命令的相關(guān)知識,希望對大家有所幫助!
linux下開機自啟動命令
.開機啟動時自動運行程序
Linux加載后, 它將初始化硬件和設(shè)備驅(qū)動, 然后運行之一個進程init。init根據(jù)
配置文件
繼續(xù)引導(dǎo)過程,啟動其它進程。通常情況下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的腳本文件,可以使init自動啟動其它程序。
例慧明如:編輯 /etc/rc.d/rc.local 文件,在文件最末加上一行”xinit”或”startx”,可以在開機啟動后直接進入X-Window。
擴展:其他情況下linux自啟動程序命令
.登錄時自動運行程序
用戶登錄時,bash首先自動執(zhí)行系統(tǒng)管理員建立的全局登錄script :/etc/profile。然后bash在用戶起始目錄下按順序查找三個特殊文件中的一個:/.bash_profile、/.bash_login、 /.profile,但只執(zhí)行更先找到的一個。
因此,只需根據(jù)實棗祥際需要在上述文件中加入命令就可以實現(xiàn)用戶登錄時自動運行某些程序(類似于DOS下的Autoexec.bat)。
.退出登錄時自動運行程序
退出登錄時,bash自動執(zhí)行個人的退出登錄腳本/.bash_logout。例如,在/.bash_logout中加入命令”tar -cvzf c.source.tgz *.c”,則在每次退出登錄時自動執(zhí)行 “tar” 命令備份 *.c 文件。
.定期自動運行程序
linux有一個稱為crond的守護程序,主要功能是周期性地檢查 /var/spool/cron目錄下的一組命令文件的內(nèi)容,并在設(shè)定的時間執(zhí)行這些文件中的命令。用戶可以通過crontab 命令來建立、修改、刪除這些命令文件。
例如,建立文件crondFile,內(nèi)容為”Jan * HappyBirthday”,運行”crontab cronFile”命令后,每當(dāng)元月23日上午9:00系統(tǒng)自動執(zhí)行”HappyBirthday”的程序(“*”表示不管當(dāng)天是星期幾)。 (/etc/crontab中配置命令即可)也可以
.定時自動運行程序一次
定時執(zhí)行命令at 與crond 類似(但它只執(zhí)行一次):命令在給定的時間執(zhí)行,但不自動重復(fù)。at命令的一般格式為:at time ,在指定的時間執(zhí)行file文件中所給出的所有命令。也可直接從鍵盤輸入命令:
.創(chuàng)建開機自啟動腳本
) 將你的啟動腳本復(fù)制到 /etc/init.d目錄下
以下假設(shè)你的腳本文件名為 test。
) 設(shè)置腳本文件的權(quán)限
$ sudo chmod 755 /etc/init.d/test
) 執(zhí)行如下命令將腳本放到啟動腳本中去:
$ cd /etc/init.d
$ sudo update-rc.d test defaults 95
注:其中數(shù)字95是腳本啟動的順前巖告序號,按照自己的需要相應(yīng)修改即可。在你有多個啟動腳本,而它們之間又有先后啟動的依賴關(guān)系時你就知道這個數(shù)字的具體作用了。該命令的輸出信息參考如下:
update-rc.d: warning: /etc/init.d/test missing LSB informationupdate-rc.d: see
卸載啟動腳本的方法:
$ cd /etc/init.d
$ sudo update-rc.d -f test remove
命令輸出的信息參考如下:
Removing any system startup links for /etc/init.d/test … /etc/rc0.d/K95test /etc/rc1.d/K95test /etc/rc2.d/S95test /etc/rc3.d/S95test /etc/rc4.d/S95test /etc/rc5.d/S95test /etc/rc6.d/K95test
linux設(shè)置開機自動啟動的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux設(shè)置開機自動啟動,如何在linux系統(tǒng)中設(shè)置開機自動啟動,linux開機自啟動命令的信息別忘了在本站進行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
本文名稱:如何在linux系統(tǒng)中設(shè)置開機自動啟動(linux設(shè)置開機自動啟動)
分享路徑:http://www.5511xx.com/article/cdhdjeh.html


咨詢
建站咨詢
