CentOS設(shè)置自定義服務(wù)并開(kāi)機(jī)自啟動(dòng)過(guò)程
1、編寫(xiě)自定義腳本
cat /root/test.sh
#!/bin/bash #每隔5s打印當(dāng)前時(shí)間并輸出到指定文件里 while true do echo "`date '+%Y-%m-%d %H:%M:%S'`" >> /root/a.log sleep 5 done
2、將腳本設(shè)置成服務(wù)
[root@XIEXC ~]# cat /usr/lib/systemd/system/zdy.service
[Unit] Description=zidingyi-shell #需修改 After=network.target [Service] Type=simple User=root ExecStart=/bin/bash /root/test.sh #需修改,執(zhí)行的命令 Restart=on-failure [Install] WantedBy=multi-user.target
3、設(shè)置開(kāi)機(jī)自啟動(dòng)
systemctl start zdy.service #手動(dòng)開(kāi)啟服務(wù) systemctl enable zdy.service #設(shè)置為開(kāi)機(jī)自啟動(dòng)
查看開(kāi)機(jī)服務(wù)項(xiàng)
[root@XIEXC ~]# systemctl list-unit-files | grep enable | grep zdy* zdy.service enabled
4、驗(yàn)證
reboot后
tail -f /root/a.log

驗(yàn)證完記得刪除此測(cè)試服務(wù)?。?!
附:service文件參數(shù)詳情
1、Unit部分
[Unit] Description=zidingyi-shell After=network.target
是啟動(dòng)順序與依賴關(guān)系
- 1)Description字段:給出當(dāng)前服務(wù)的簡(jiǎn)單描述。
- 2)After字段:表示本服務(wù)應(yīng)該在某服務(wù)之后啟動(dòng)。(After和Before字段只涉及啟動(dòng)順序,不涉及依賴關(guān)系。設(shè)置依賴關(guān)系,需要使用Wants字段和Requires字段。)
- 3)Wants字段:表示本服務(wù)與某服務(wù)之間存在“依賴”系,如果被依賴的服務(wù)啟動(dòng)失敗或停止運(yùn)行,不影響本服務(wù)的繼續(xù)運(yùn)行。
- 4)Requires字段,表示本服務(wù)與某服務(wù)之間存在“強(qiáng)依賴”系,如果被依賴的服務(wù)啟動(dòng)失敗或停止運(yùn)行,本服務(wù)也必須退出。
2、Service部分
[Service] Type=simple User=root ExecStart=/bin/bash /root/test.sh Restart=on-failure
1)Type字段:定義啟動(dòng)類型
simple(默認(rèn)值):ExecStart字段啟動(dòng)的進(jìn)程為主進(jìn)程。forking:ExecStart字段將以fork()方式啟動(dòng),此時(shí)父進(jìn)程將會(huì)退出,子進(jìn)程將成為主進(jìn)程。oneshot:類似于simple,但只執(zhí)行一次,Systemd會(huì)等它執(zhí)行完,才啟動(dòng)其他服務(wù)。dbus:類似于simple,但會(huì)等待D-Bus信號(hào)后啟動(dòng)。notify:類似于simple,啟動(dòng)結(jié)束后會(huì)發(fā)出通知信號(hào),然后Systemd再啟動(dòng)其他服務(wù)。idle:類似于simple,但是要等到其他任務(wù)都執(zhí)行完,才會(huì)啟動(dòng)該服務(wù)。?
2)ExecStart字段:?jiǎn)?dòng)服務(wù)時(shí)執(zhí)行的命令,可以是可執(zhí)行程序、系統(tǒng)命令或shell腳本
3)Restart字段:服務(wù)程序退出后,Systemd的重啟方式
no(默認(rèn)值):退出后不會(huì)重啟;on-failure:非正常退出時(shí)(退出狀態(tài)碼非0),包括被信號(hào)終止和超時(shí),才會(huì)重啟
3、Install部分
[Install] WantedBy=multi-user.target
定義如何安裝這個(gè)配置文件,即怎樣做到開(kāi)機(jī)啟動(dòng)
1)WantedBy字段:表示該服務(wù)所在的Target。
(Target的含義是服務(wù)組,表示一組服務(wù)。WantedBy=multi-user.target指的是,自定義腳本所在的Target是multi-user.target(多用戶模式)。這個(gè)設(shè)置非常重要,因?yàn)閳?zhí)行systemctl enable zdy.service命令時(shí),zdy.service會(huì)被鏈接到/etc/systemd/system/multi-user.target.wants目錄之中,實(shí)現(xiàn)開(kāi)機(jī)啟動(dòng)的功能。)
?總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- centos設(shè)置shell腳本開(kāi)機(jī)自啟動(dòng)
- centos6配置tomcat8開(kāi)機(jī)自啟動(dòng)腳本
- Centos 7下Mongodb開(kāi)機(jī)無(wú)法自啟動(dòng)的解決方法
- 詳解Centos7中Nginx開(kāi)機(jī)自啟動(dòng)的解決辦法
- centos7系統(tǒng)下nginx安裝并配置開(kāi)機(jī)自啟動(dòng)操作
- CentOS 7安裝Mysql并設(shè)置開(kāi)機(jī)自啟動(dòng)的方法
- centos 6.5 oracle開(kāi)機(jī)自啟動(dòng)的環(huán)境配置詳解
相關(guān)文章
Linux中定時(shí)任務(wù)與開(kāi)機(jī)啟動(dòng)任務(wù)的配置完整指南
這篇文章主要為大家詳細(xì)介紹了Linux中定時(shí)任務(wù)與開(kāi)機(jī)啟動(dòng)任務(wù)的配置相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-10-10
linux系統(tǒng)內(nèi)核升級(jí)導(dǎo)致進(jìn)不去系統(tǒng)的解決方案
本文介紹了使用sudo apt-get update命令后,內(nèi)核更新導(dǎo)致顯示驅(qū)動(dòng)不匹配的問(wèn)題,提供了兩種解決方法:重新安裝系統(tǒng)驅(qū)動(dòng)或進(jìn)入舊內(nèi)核系統(tǒng)刪除新內(nèi)核并更新GRUB,以恢復(fù)正常系統(tǒng)2026-01-01
centos7.2搭建nginx的web服務(wù)器部署uniapp項(xiàng)目
這篇文章主要介紹了centos7.2搭建nginx的web服務(wù)器部署uniapp項(xiàng)目,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
linux下建站目錄分配權(quán)限的經(jīng)驗(yàn)技巧總結(jié)
在建站的時(shí)候給目錄分配權(quán)限是非常重要的,也是建站的程序員們必須要會(huì)的,下面這篇文章主要給大家總結(jié)了在linux下建站目錄分配權(quán)限的經(jīng)驗(yàn)技巧,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-06-06
在Linux中列出Systemd下所有正在運(yùn)行的服務(wù)的方法指南
Systemd是Linux的系統(tǒng)和服務(wù)管理器; init進(jìn)程的替代品,與SysV 和LSB init腳本兼容,systemctl命令是管理systemd的主要工具,在這篇文章中,我們將演示如何 Linux中列出systemd下所有正在運(yùn)行的服務(wù),感興趣的同學(xué)可以借鑒閱讀2023-06-06
如何解決yum無(wú)法安裝epel-release的問(wèn)題
這篇文章主要介紹了如何解決yum無(wú)法安裝epel-release的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05

