溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CentOS7中systemd如何添加自定義系統(tǒng)服務

發(fā)布時間:2021-05-31 11:27:34 來源:億速云 閱讀:158 作者:小新 欄目:服務器

小編給大家分享一下CentOS7中systemd如何添加自定義系統(tǒng)服務,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

systemd:

CentOS 7的服務systemctl腳本存放在:/usr/lib/systemd/,有系統(tǒng)(system)和用戶(user)之分,即:/usr/lib/systemd/system ,/usr/lib/systemd/user

每一個服務以.service結尾,一般會分為3部分:[Unit]、[Service]和[Install],就以nginx為例吧,具體內容如下:

創(chuàng)建service:

在/usr/lib/systemd/system下創(chuàng)建nginx.service文件內容如下(看應用需求也可以在 /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í)行一項任務、隨后立即退出的服務。可能需要同時設置 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)服務”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI