centos7用shell建立守護進程,並設定為系統服務,開機自動啟動

來源:互聯網
上載者:User

標籤:shell   守護進程   開機自啟動   

首先是建立shell守護進程:(shouhu.sh) 

#!/bin/bashtest(){        while true        do                ls ./  >> 123.txt                sleep 5                            done}case $1 instart)        path="/root/shouhu.pid"        if [ -f $path ]; then                pid=`cat /root/shouhu.pid`                echo "進程$pid正在運行..."        else                test &                 echo $! > /root/shouhu.pid                echo "運行進程$!..."         fi        ;;stop)        pid=`cat /root/shouhu.pid`        kill -9 $pid        echo "結束進程$pid..."        rm -rf /root/shouhu.pid        ;;restart)        path="/root/shouhu.pid"        if [ -f "$path" ];then                pid=`cat /root/shouhu.pid`                kill -9 $pid                echo "結束進程$pid..."                rm -rf /root/shouhu.pid                test &                echo $! > /root/shouhu.pid                echo "運行進程$!..."        else                echo "進程沒運行..."                test &                echo $! > /root/shouhu.pid                echo "運行進程$!..."        fi         ;;status)        path="/root/shouhu.pid"        if [ -f $path ];then                pid=`cat /root/shouhu.pid`                echo "進程$pid正在運行..."        else                echo "進程沒運行..."        fi        ;;*)        echo "Usage:{start|stop|restart|status}"        ;;esac

然後把shouhu.sh 設定為系統服務:

#~]vi /usr/lib/systemd/system/shouhu.service
[Unit]  Description=shouhu After=network.target     [Service]  Type=forking  PIDFile=/root/shouhu.pid  ExecStart=/root/shouhu.sh  startExecReload=/root/shouhu.sh  restartExecStop=/root/shouhu.sh  stopPrivateTmp=true     [Install]  WantedBy=multi-user.target

CentOS 7的服務systemctl指令碼存放在:/usr/lib/systemd/,有系統(system)和使用者(user)之分,需要開機不登陸就能啟動並執行程式,存在系統服務裡,即:/usr/lib/systemd/system目錄下。每一個服務以.service結尾,一般會分為3部分:[Unit]、[Service]和[Install]

[Unit]部分主要是對這個服務的說明,內容包括Description和After,Description用於描述服務,After用於設定啟動先後順序;

[Service]部分是服務的關鍵,是服務的一些具體運行參數的設定,這裡Type=forking是後台啟動並執行形式,PIDFile為存放PID的檔案路徑,ExecStart為服務的運行命令,ExecReload為重啟命令,ExecStop為停止命令,PrivateTmp=True表示給服務分配獨立的臨時空間,注意:[Service]部分的啟動、重啟、停止命令全部要求使用絕對路徑,使用相對路徑則會報錯;

[Install]部分是服務安裝的相關設定,可設定為多使用者的。


儲存好編寫的檔案,然後設定開機啟動:

 ~]# systemctl enable shouhu

本文出自 “11324936” 部落格,請務必保留此出處http://11334936.blog.51cto.com/11324936/1925127

centos7用shell建立守護進程,並設定為系統服務,開機自動啟動

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.