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

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


咨詢
建站咨詢
