.netcore web應用在linux上如何自動重啟


首先創建一個啟動腳本命名為netcore.servic,放到/etc/systemd/system目錄下,修改對應的app目錄和 啟動命令即可

Type=simple
# app的目錄
WorkingDirectory=/www/publish
# 啟動命令
ExecStart=/usr/bin/dotnet Web.App.dll
Restart=always
StandardOutput=journal
StandardError=journal
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

重新加載守護進程列表

systemctl daemon-reload

這個腳本只具有啟動應用的能力,沒有停止和重啟的功能,所以要再寫一個腳本停止並啟動應用

#!/bin/sh
app_dir="/www/publish"

pid=`ps -ef | grep 'Web.App.dll' | grep -v grep |awk '{print $2}'`
echo $pid
#kill process
while [ "#$pid" != "#" ];do
   echo "kill $pid"
   kill -9 $pid
   sleep 1s
   pid=`ps -ef | grep 'Web.App.dll' | grep -v grep |awk '{print $2}'`
done

#start process
sleep 5s
systemctl start netcore.service


最后創建任務計划即可(每天零點重啟)

crontab -e
* 0 * * *  /opt/script/app_restart.sh

重啟crond服務

systemctl restart crond


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM