.Net Core WebApi 部署到 Centos 7 Linux 平臺 實現 服務的後臺運行和服務自啓動

最近在開發一個.Net Core WebApi 服務,大部分都在windwos上運行,很容易,現在要發佈到linux平臺上。

linux 平臺先要安裝  .Net Core 的支持 ,可以到官方平臺看其他平臺安裝:

https://www.microsoft.com/net/core#linuxcentos

 

敲如下命令:

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum -y update
sudo yum -y install dotnet-sdk-3.1
dotnet --version

安裝好之後

服務自身是需要開始和停止腳本的

如下

Start.sh  (主要實現服務啓動,後臺運行)

#!/bin/sh
RUN_NAME="BKYL.TPIServer.dll"
export LANG="en_US.UTF-8"
cd `dirname $0`
PID=`ps -ef|grep $RUN_NAME|grep -v grep|awk '{printf $2}'`
echo $PID
if [ ! -n "$PID" ];
then
   echo "TPIServer 開始啓動"
else
   echo "TPIServer 已啓動,正在重啓"
   echo $PID
fi
nohup dotnet $RUN_NAME --urls http://*:808  >/dev/null 2>&1 &

Stop.sh (實現關閉當前服務)

#!/bin/sh
RUN_NAME="BKYL.TPIServer.dll"
export LANG="en_US.UTF-8"
PID=`ps -ef|grep $RUN_NAME|grep -v grep|awk '{printf $2}'`
echo $PID
if [ ! -n "$PID" ];
then
   echo "未發現:TPIServer!"
else
   echo "TPIServer 已結束執行!"
   echo $PID
   kill -9 $PID
fi

以上是一個單獨的服務需要運行的常規腳本

但是我想讓這個服務開機的時候,就自動運行,而不需要我自己重新啓動。

那麼就需要以下腳本

第一個爲服務本身的腳本

TPIServer

#!/bin/bash
# description: TPIServer Start Stop Restart
# processname: TPIServer
# chkconfig: 234 20 80

FILE_HOME='/usr/local/TPIServer'

case $1 in
        start)
                sh $FILE_HOME/Start.sh
                ;;
        stop)
                sh $FILE_HOME/Stop.sh
                ;;
        restart)
                sh $FILE_HOME/Stop.sh
                sh $FILE_HOME/Start.sh
                ;;
        *)
                echo 'please use : TPIServer {start | stop | restart}'
        ;;
esac
exit 0

這個是一個服務腳本,可以通過使用 

啓動:service TPIServer start

停止:service TPIServer stop

重啓:service TPIServer restart

來對服務進行 啓動和關閉。

然後 最後的方式是通過 執行一個腳本,來實現 自啓動

InitServer.sh (實現 腳本授權,服務安裝,以及 實現系統自啓動,還有啓動服務)

#!/bin/sh
ServerPath='/etc/init.d'
FileName='TPIServer'

chmod +x Start.sh
chmod +x Stop.sh
chmod +x TPIServer

cp $FileName $ServerPath/$FileName

chkconfig --add $FileName
chkconfig $FileName on
service $FileName start
echo 'Server Success'

RemoveServer.sh (實現停止自啓動,停止服務運行)

#!/bin/sh
ServerPath='/etc/init.d'
FileName='TPIServer'
chkconfig $FileName off
chkconfig --del $FileName
service $FileName stop
echo 'Server Stop'

 

自此,文件已經完畢。

只用授權 InitServer.sh ,然後,執行 ./InitServer.sh 接口完成 服務的自啓動安裝,重啓後,服務運行正常。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章