這篇文章主要介紹“CentOS7中systemd怎么添加自定義系統(tǒng)服務”,在日常操作中,相信很多人在CentOS7中systemd怎么添加自定義系統(tǒng)服務問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”CentOS7中systemd怎么添加自定義系統(tǒng)服務”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
創(chuàng)新互聯(lián)是一家專業(yè)提供達州企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、網(wǎng)站制作、H5頁面制作、小程序制作等業(yè)務。10年已為達州眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
systemd:
centos 7的服務systemctl腳本存放在:/usr/lib/systemd/,有系統(tǒng)(system)和用戶(user)之分,即:/usr/lib/systemd/system ,/usr/lib/systemd/user
每一個服務以.service結(jié)尾,一般會分為3部分:[unit]、[service]和[install],就以nginx為例吧,具體內(nèi)容如下:
創(chuàng)建service:
在/usr/lib/systemd/system下創(chuàng)建nginx.service文件內(nèi)容如下(看應用需求也可以在 /usr/lib/systemd/usr下創(chuàng)建):
[unit] description=nginx - high performance web server documentation=http://nginx.org/en/docs/ after=network.target remote-fs.target nss-lookup.target [service] type=forking pidfile=/run/nginx.pid execstartpre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf execstart=/usr/sbin/nginx -c /etc/nginx/nginx.conf execreload=/bin/kill -s hup $mainpid execstop=/bin/kill -s quit $mainpid privatetmp=true [install] wantedby=multi-user.target
[unit]
description : 服務的簡單描述
documentation : 服務文檔
after= : 依賴,僅當依賴的服務啟動之后再啟動自定義的服務單元
[service]
type : 啟動類型simple、forking、oneshot、notify、dbus
type=simple(默認值):systemd認為該服務將立即啟動。服務進程不會fork。如果該服務要啟動其他服務,不要使用此類型啟動,除非該服務是socket激活型。 type=forking:systemd認為當該服務進程fork,且父進程退出后服務啟動成功。對于常規(guī)的守護進程(daemon),除非你確定此啟動方式無法滿足需求,使用此類型啟動即可。使用此啟動類型應同時指定 pidfile=,以便systemd能夠跟蹤服務的主進程。 type=oneshot:這一選項適用于只執(zhí)行一項任務、隨后立即退出的服務??赡苄枰瑫r設置 remainafterexit=yes 使得 systemd 在服務進程退出之后仍然認為服務處于激活狀態(tài)。 type=notify:與 type=simple 相同,但約定服務會在就緒后向 systemd 發(fā)送一個信號。這一通知的實現(xiàn)由 libsystemd-daemon.so 提供。 type=dbus:若以此方式啟動,當指定的 busname 出現(xiàn)在dbus系統(tǒng)總線上時,systemd認為服務就緒。
pidfile : pid文件路徑
execstartpre :啟動前要做什么,上文中是測試配置文件 -t
execstart:啟動
execreload:重載
execstop:停止
privatetmp:true表示給服務分配獨立的臨時空間
[install]
wantedby:服務安裝的用戶模式,從字面上看,就是想要使用這個服務的有是誰?上文中使用的是:multi-user.target ,就是指想要使用這個服務的目錄是多用戶。「以上全是個人理解,瞎猜的,如有不當,請大家多多指教」每一個.target實際上是鏈接到我們單位文件的集合,當我們執(zhí)行:
$ sudo systemctl enable nginx.service
就會在/etc/systemd/system/multi-user.target.wants/目錄下新建一個/usr/lib/systemd/system/nginx.service 文件的鏈接。
操作service:
#啟動服務 $ sudo systemctl start nginx.service #查看日志 $ sudo journalctl -f -u nginx.service -- logs begin at 四 2015-06-25 17:32:20 cst. -- 6月 25 10:28:24 leco.lan systemd[1]: starting nginx - high performance web server... 6月 25 10:28:24 leco.lan nginx[7976]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 6月 25 10:28:24 leco.lan nginx[7976]: nginx: configuration file /etc/nginx/nginx.conf test is successful 6月 25 10:28:24 leco.lan systemd[1]: started nginx - high performance web server. #重啟 $ sudo systemctl restart nginx.service #重載 $ sudo systemctl reload nginx.service #停止 $ sudo systemctl stop nginx.service
到此,關于“CentOS7中systemd怎么添加自定義系統(tǒng)服務”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
文章名稱:CentOS7中systemd怎么添加自定義系統(tǒng)服務
文章網(wǎng)址:http://weahome.cn/article/iijijc.html