閱讀622 返回首頁    go 魔獸


Linux 之centos7 製作服務自啟動systemd

  • Centos7開機第一個程序從init完全換成了systemd這種啟動方式,同centos 5 6已經是實質差別。systemd是靠管理unit的方式來控製開機服務,開機級別等功能。

  • 在/usr/lib/systemd/system目錄下包含了各種unit文件,有service後綴的服務unit,有target後綴的開機級別unit等,這裏臨時介紹關於service後綴的文件。因為systemd在開機要想執行自啟動,都是通過這些*.service 的unit控製的

具體流程

  1. 在/usr/lib/systemd/system目錄下新建一個 service-name.service的文件
  2. 以apache的httpd.service的unit為例解釋
[Unit]
#定義描述
Description=The Apache HTTP Server 
#指定了在systemd在執行完那些target之後再啟動該服務
After=network.target remote-fs.target nss-lookup.target

[Service]
#定義Service 的運行type,一般是forking,就是後台運行
Type=notify
Environment=LANG=C
#以下定義systemctl start |stop |reload *.service  的每個執行方法,具體命令#需要寫絕對路徑
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
# Send SIGWINCH for graceful stop
KillSignal=SIGWINCH
KillMode=mixed
#創建私有的內存臨時空間
PrivateTmp=true

[Install]
WantedBy=multi-user.target

以下是我自己寫的一個java項目,需要他開機自運行的service,systemd會幫我執行我寫腳本,shell如下,僅供參考

#!/bin/bash
CMD=$1

case $CMD in 
-start)

        nohup java -jar /home/mobileoa/apps/shMediaManage-0.0.1.jar &> /home/mobileoa/apps/shm.log &
        ;;
-stop)

        port=$(sudo netstat -tnlp | grep ':9099' |awk '{print $nf}' |awk -f'/' '{print $1}')
        sudo kill $port
        ;;

-restart)

        port=$(sudo netstat -tnlp | grep ':9099' |awk '{print $nf}' |awk -f'/' '{print $1}')
        sudo kill $port
        nohup java -jar /home/mobileoa/apps/shMediaManage-0.0.1.jar &> /home/mobileoa/apps/shm.log &
        ;;
*)
        echo "Usage: shMediaManager.sh -start | -stop | -restart .Or use systemctl start | stop | restart  MediaManager.service "
        ;;
esac

編輯.service文件,在Exec*下執行腳本,來啟動關閉重啟服務

[UNIT]
Description=Media wanager Service
After=network.target

[Service]
Type=forking
**ExecStart=/home/mobileoa/apps/shMediaManager.sh -start
ExecReload=/home/mobileoa/apps/shMediaManager.sh -restart
ExecStop=/home/mobileoa/apps/shMediaManager.sh -stop**
PrivateTmp=True

[Install]
WantedBy=multi-user.target

設置開機自起
systemctl enable MediaManager.service
會創建一個連接

最後更新:2017-05-26 14:01:05

  上一篇:go  H5響應式設計可以為你網站帶來什麼?
  下一篇:go  《無線網絡:理解和應對互聯網環境下網絡互連所帶來的挑戰》——1.7 蜂窩網絡技術概述