CentOS 7 systemd添加自定义系统服务
systemd:
? ? CentOS 7的服務systemctl腳本存放在:/usr/lib/systemd/,有系統(system)和用戶(user)之分,即:/usr/lib/systemd/system ,/usr/lib/systemd/user? ? 每一個服務以.service結尾,一般會分為3部分:[Unit]、[Service]和[Install],就以nginx為例吧,具體內容如下:
創建service:
在/usr/lib/systemd/system下創建nginx.service文件內容如下(看應用需求也可以在 /usr/lib/systemd/usr下創建):[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、dbusType=simple(默認值):systemd認為該服務將立即啟動。服務進程不會fork。如果該服務要啟動其他服務,不要使用此類型啟動,除非該服務是socket激活型。?
Type=forking:systemd認為當該服務進程fork,且父進程退出后服務啟動成功。對于常規的守護進程(daemon),除非你確定此啟動方式無法滿足需求,使用此類型啟動即可。使用此啟動類型應同時指定 PIDFile=,以便systemd能夠跟蹤服務的主進程。?
Type=oneshot:這一選項適用于只執行一項任務、隨后立即退出的服務。可能需要同時設置 RemainAfterExit=yes 使得 systemd 在服務進程退出之后仍然認為服務處于激活狀態。?
Type=notify:與 Type=simple 相同,但約定服務會在就緒后向 systemd 發送一個信號。這一通知的實現由 libsystemd-daemon.so 提供。?
Type=dbus:若以此方式啟動,當指定的 BusName 出現在DBus系統總線上時,systemd認為服務就緒。
PIDFile : pid文件路徑?
ExecStartPre :啟動前要做什么,上文中是測試配置文件 -t ?
ExecStart:啟動?
ExecReload:重載?
ExecStop:停止?
PrivateTmp:True表示給服務分配獨立的臨時空間
[Install]
WantedBy:服務安裝的用戶模式,從字面上看,就是想要使用這個服務的有是誰?上文中使用的是:multi-user.target ,就是指想要使用這個服務的目錄是多用戶。
科普1:淺析 Linux 初始化 init 系統,Systemd
科普2:Getting Started with systemd
總結
以上是生活随笔為你收集整理的CentOS 7 systemd添加自定义系统服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统|时间片轮转调度算法(RR)
- 下一篇: 全屏滚动插件fullPage.js