????有時(shí)候遇到服務(wù)器不穩(wěn)定經(jīng)常掛掉的時(shí)候引镊,部署在服務(wù)器上服務(wù)就會(huì)down掉朦蕴,需要人工手動(dòng)進(jìn)行重啟服務(wù)篮条,這是非常麻煩的,也是非常不智能的吩抓,同時(shí)極大程度的影響客戶(hù)的體驗(yàn)涉茧,所以這時(shí)我們只需要設(shè)置一個(gè)服務(wù)器自啟的服務(wù)就可以完美的解決這個(gè)問(wèn)題。
centos7系統(tǒng)參下:
先編寫(xiě)一個(gè)service文件在/lib/systemd/system/文件夾下(有些根據(jù)系統(tǒng)不同可能是在/usr/lib/systemd/system/)疹娶,文件格式如下:
vim /lib/systemd/system/test.service
[Unit]
Description=test
After=network.target
[Service]
Type=forking
ExecStart=/root/test.sh
ExecReload=/root/testreload.sh
ExecStop=/root/teststop.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
其中他們的字段分別代表了
Description:描述服務(wù)
After:描述服務(wù)類(lèi)別
[Service]服務(wù)運(yùn)行參數(shù)的設(shè)置
Type=forking是后臺(tái)運(yùn)行的形式
ExecStart為服務(wù)的具體運(yùn)行命令(如果是運(yùn)行腳本文件只需要把sh文件位置寫(xiě)入就行伴栓,如果是啟動(dòng)某些服務(wù),就找到啟動(dòng)服務(wù)的文件位置 然后start 雨饺,例如/www/lanmps/init.d/nginx restart)
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務(wù)分配獨(dú)立的臨時(shí)空間
然后保存文件如果保存文件顯示權(quán)限不夠钳垮,可以切換超級(jí)管理員sudo su,然后進(jìn)行保存文件沛膳,賦予文件754的權(quán)限扔枫,賦予完成后看是否賦予成功可以通過(guò)ll觀察,第一位代表文件類(lèi)型锹安,然后以三位一組rwx代表當(dāng)前用戶(hù)的權(quán)限短荐,r-x代表用戶(hù)組的權(quán)限,r--代表其他權(quán)限
賦予權(quán)限之后systemctl enable test.service設(shè)置為開(kāi)機(jī)自啟叹哭,然后可以通過(guò)systemctl status nginx.service命令查看這個(gè)service的狀態(tài)忍宋,這是正常執(zhí)行的
其他命令
systemctl start test.service 啟動(dòng)nginx服務(wù)
systemctl enable?test.service 設(shè)置開(kāi)機(jī)自啟動(dòng)
systemctl disable?test.service 停止開(kāi)機(jī)自啟動(dòng)
systemctl status?test.service 查看服務(wù)當(dāng)前狀態(tài)
systemctl restart?test.service 重新啟動(dòng)服務(wù)
systemctl list-units --type=service 查看所有已啟動(dòng)的服務(wù)
如果你設(shè)置自啟之后active為inactive那么就是服務(wù)在等待被執(zhí)行,也是成功的风罩,這時(shí)候你就可以reboot重啟服務(wù)來(lái)檢查你是否設(shè)置成功糠排。
centos6.6使用以下方法:
因?yàn)閏entos6是沒(méi)有systemctl的(就非常生氣,因?yàn)榭蛻?hù)的就是centos6的)解決centos6的有兩種方法分別是通過(guò)chkconfig和設(shè)置rc.local超升,但是因?yàn)閞c.local這種方法我沒(méi)有成功入宦,每次設(shè)置了/etc/rc.d/rc.local文件,一些echo室琢、su命令都可以執(zhí)行但是執(zhí)行java -jar就不知道為什么不行(以后再補(bǔ)上)乾闰,重啟后還是沒(méi)有執(zhí)行(不知道哪里出了問(wèn)題,弄了一天心態(tài)炸了盈滴,以后弄好了再給各位看官補(bǔ)上)涯肩,所以就不在這進(jìn)行描述了,然后是使用了chkconfig的方式巢钓,在/etc/init.d/文件夾下面建一個(gè)sh腳本文件
#!/bin/sh?
#add for chkconfig?
#chkconfig: 2345 70 30?
#description: the description of the shell? #關(guān)于腳本的簡(jiǎn)短描述?
#processname: xxxx ? ? ? ? ? ? ? ? ? #第一個(gè)進(jìn)程名病苗,后邊設(shè)置自啟動(dòng)的時(shí)候會(huì)用到?
#下面要啟動(dòng)服務(wù)的命令?
service iptables restart(運(yùn)行系統(tǒng)服務(wù)使用restart)
sh /home/hipay/test.sh(運(yùn)行腳本)
其中chkconfig : 2345 70 30 ,2345代表運(yùn)行級(jí)別
運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0症汹,否則不能正常啟動(dòng)
運(yùn)行級(jí)別1:?jiǎn)斡脩?hù)工作狀態(tài)硫朦,root權(quán)限,用于系統(tǒng)維護(hù)背镇,禁止遠(yuǎn)程登陸
運(yùn)行級(jí)別2:多用戶(hù)狀態(tài)(沒(méi)有NFS)
運(yùn)行級(jí)別3:完全的多用戶(hù)狀態(tài)(有NFS)阵幸,登陸后進(jìn)入控制臺(tái)命令行模式
運(yùn)行級(jí)別4:系統(tǒng)未使用花履,保留
運(yùn)行級(jí)別5:X11控制臺(tái)芽世,登陸后進(jìn)入圖形GUI模式
運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟挚赊,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6,否則不能正常啟動(dòng)
70是指腳本將來(lái)的啟動(dòng)順序號(hào)济瓢,如果別的程序的啟動(dòng)順序號(hào)比70熊睢(比如44、45)旺矾,則腳本需要等這些程序都啟動(dòng)以后才啟動(dòng)蔑鹦。
30是指系統(tǒng)關(guān)閉時(shí),腳本的停止順序號(hào)
然后保存同時(shí)需要給文件添加執(zhí)行權(quán)限chmod +x ./test.sh,再把test.sh添加到chkconfig (chkconfig --add test.sh),使用命令chkconfig查看所有的啟動(dòng)文件箕宙。
重啟之后應(yīng)該就ok了:啃唷!柬帕!
如有問(wèn)題歡迎評(píng)論指教(0-----0)