在啟動(dòng)時(shí)執(zhí)行 Linux 腳本

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。
有兩種傳統(tǒng)的方法可以實(shí)現(xiàn)在啟動(dòng)時(shí)執(zhí)行命令或腳本:
方法 #1 - 使用 cron 任務(wù)
除了常用格式(分 / 時(shí) / 日 / 月 / 周)外,cron 調(diào)度器還支持?@reboot指令。這個(gè)指令后面的參數(shù)是腳本(啟動(dòng)時(shí)要執(zhí)行的那個(gè)腳本)的絕對(duì)路徑。然而,這種方法需要注意兩點(diǎn):
a) cron 守護(hù)進(jìn)程必須處于運(yùn)行狀態(tài)(通常情況下都會(huì)運(yùn)行),同時(shí)
b) 腳本或 crontab 文件必須包含需要的環(huán)境變量(如果有的話,參考 StackOverflow 獲取更多詳細(xì)內(nèi)容)。
方法 #2 - 使用 /etc/rc.d/rc.local
這個(gè)方法對(duì)于 systemd-based 發(fā)行版 Linux 同樣有效。不過,使用這個(gè)方法,需要授予/etc/rc.d/rc.local文件執(zhí)行權(quán)限:
# chmod +x /etc/rc.d/rc.local
然后在這個(gè)文件底部添加腳本。
下圖說明如何分別使用 cron 任務(wù)和 rc.local 運(yùn)行兩個(gè)示例腳本(/etc/rc.d/rc.local/home/gacanepa/1.sh和/home/gacanepa/2.sh)。
1.sh:
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "Current date and time: $DATE" $DIR/file1.txt
2.sh:
#!/bin/bash SITE="Tecmint點(diǎn)抗 " DIR=/home/gacanepa echo "$SITE rocks... add us to your bookmarks." $DIR/file2.txt
*啟動(dòng)時(shí)執(zhí)行 Linux 腳本 *
記住,一定要提前給兩個(gè)示例腳本授予執(zhí)行權(quán)限:
$ chmod +x /home/gacanepa/1.sh $ chmod +x /home/gacanepa/2.sh
在登錄或注銷時(shí)執(zhí)行 Linux 腳本
要在登錄或注銷時(shí)執(zhí)行腳本,分別需要使用~.bash_profile和~.bash_profile文件升明。多數(shù)情況下,后者需要手動(dòng)創(chuàng)建。在每帆笑虛個(gè)文件的底部,添加調(diào)用腳本代碼,如前面例中所示,就可以實(shí)現(xiàn)這個(gè)功態(tài)燃能。
很多時(shí)候,我們需要將一些服務(wù)在Linux系統(tǒng)啟動(dòng)時(shí)即自動(dòng)運(yùn)行,省得每次都要去手動(dòng)啟動(dòng)一遍,如Redis, MySQL, Nginx等。本文對(duì)CentOS與Ubuntu下開機(jī)自啟動(dòng)的配置方法進(jìn)行整理,供參考查閱。
rc.local是CentOS以前版本的方式,在CentOS7中仍然以兼容的形式存在,雖仍可用,但不推薦(推薦使用systemd service)。
1、編寫需要開機(jī)自啟動(dòng)的腳本,并添加執(zhí)行權(quán)限
作為測(cè)試,上述腳本打印一個(gè)時(shí)間到/tmp/test.log文件中
2、在/etc/rc.d/rc.local配置文件中添加腳滾毀巖本運(yùn)行命令(使用絕對(duì)路徑)
3、添加/etc/rc.d/rc.local文件的執(zhí)行權(quán)限
在centos7中,/etc/rc.d/rc.local沒有執(zhí)行權(quán)限,需要手動(dòng)余滾授權(quán)
以上三步,即可使/root/test_rclocal.sh /dev/null 2/dev/null 命令在服務(wù)器系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行。
1、編寫需要開機(jī)自啟動(dòng)的測(cè)試腳本,并添加執(zhí)行權(quán)限
2、在/etc/rc.d/init.d/目錄下添加一個(gè)可執(zhí)行腳本testchkconfig
上述testchkconfig腳本的頭部必須遵循一定的格式 # chkconfig: 2345 90 10, 其中2345指定服務(wù)在哪些執(zhí)行等級(jí)中開啟或關(guān)閉,90表示啟動(dòng)的優(yōu)先級(jí)(0-100,越大優(yōu)先級(jí)越低),10表示關(guān)閉的優(yōu)先級(jí)。執(zhí)行等級(jí)包括
3、加入開機(jī)啟動(dòng)服務(wù)列表
使用 chkconfig --list 可查看當(dāng)前加入開機(jī)自啟動(dòng)的服務(wù)列表,但如Note部分所述,該命令只顯示SysV服務(wù),不包含原生的systemd服務(wù),查看systemd服務(wù)可使用systemctl list-unit-files命令。
以上三步,即可使/root/test_chkconfig.sh /dev/null 2/dev/null 命令在服務(wù)器系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行。
chkconfig的其它命令參考
CentOS7的systemd服務(wù)腳本存放在:/usr/lib/大御systemd/system(系統(tǒng)級(jí))/usr/lib/systemd/user(用戶級(jí))下,以.service結(jié)尾。這里以nginx為例
1、在/usr/lib/systemd/system目錄下創(chuàng)建nginx.service文件
其中Service部分的Type包括如下幾種類型:
2、 開啟開機(jī)自啟動(dòng)
以上兩步,就將nginx服務(wù)配置成了在操作系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)。
其它命令參考
從字面看是PID文件不可讀,查看/var/run/nginx.pid,該文件也確實(shí)不存在,查看nginx.conf配置文件,發(fā)現(xiàn)是pid /var/run/nginx.pid;這行配置被注釋掉了, 如果不指定pid文件位置,nginx默認(rèn)會(huì)把pid文件保存在logs目錄中。所以出現(xiàn)systemd啟動(dòng)服務(wù)時(shí)找不到pid文件而報(bào)錯(cuò),將nginx.conf中的pid配置注釋去掉,重啟nginx.service即可。
在Ubuntu18.04中,主要也是以systemd服務(wù)來實(shí)現(xiàn)開機(jī)自啟動(dòng),systemd默認(rèn)讀取/etc/systemd/system/下的配置文件,該目錄下的一些文件會(huì)鏈接到/lib/systemd/system/下的文件。
因此可以在/etc/systemd/system/目錄下面創(chuàng)建一個(gè)自啟動(dòng)服務(wù)配置,以內(nèi)網(wǎng)穿透服務(wù)frp客戶端為例,如
各配置項(xiàng)與CentOS類似。然后將服務(wù)器加到自啟動(dòng)列表中并啟動(dòng)服務(wù)
其它更多systemctl命令與CentOS類似。
也可以使用/lib/systemd/system/rc-local.service來執(zhí)行一些開機(jī)需要執(zhí)行的腳本,該文件內(nèi)容為
從Description看它是為了兼容之前版本的/etc/rc.local的,該服務(wù)啟動(dòng)命名就是/etc/rc.local start,將該文件鏈接到/etc/systemd/system下
創(chuàng)建/etc/rc.local文件,并賦予可執(zhí)行權(quán)限
作者:半路雨歌
鏈接:
有兩種方式:一種方式是根據(jù)運(yùn)行級(jí)別配置服務(wù),一種方式是執(zhí)行本地碧昌宴特殊配置。
舉例,任務(wù)是啟動(dòng)時(shí)運(yùn)行命令cvslockd:
方式一:
1、 建立自啟動(dòng)腳本/etc/rc.d/init.d/cvslockd,內(nèi)容為:
#!/bin/bash
/usr/local/bin/cvslockd
設(shè)置文件的屬性為可執(zhí)行:
#chmod +x /etc/rc.d/init.d/cvslockd
2、查看計(jì)悔銀算機(jī)運(yùn)行級(jí)別,在文件/etc/inittab里看到id:5:initdefault:,則此系統(tǒng)運(yùn)行級(jí)別為5;
3. 到/etc/rc5.d目錄下,把你要執(zhí)行的可執(zhí)行文件做一個(gè)軟連接,而且在命名的時(shí)候要以大寫S字母開頭,S之后的數(shù)字大小代表執(zhí)行順序的先后,數(shù)字越大越后執(zhí)行。
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc5.d/S100cvslockd
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc0.d/迅掘K20cvslockd
方式二:
在/etc/rc.d/rc.local 添加 exec /usr/local/bin/cvslockd
該方式是在最后啟動(dòng)cvslockd。
網(wǎng)站欄目:linux命令文件自啟動(dòng) linux開機(jī)自啟文件
地址分享:http://chinadenli.net/article49/dsphohh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、服務(wù)器托管、品牌網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)