开箱即用:使用shell脚本一键启停python服务

#!/usr/bin/env bash # chmod 755 monitor.sh # workdir=$(dirname $(readlink -f "$0")) # echo $workdir daemon_start() { echo "********************************************" echo "需要拉取最新代码" # git pull origin master echo "Done..." echo "********************************************" echo "启动监控服务..." pid=$(ps -ef | grep python | grep main.py | grep -v grep | awk '{print $2}') if [ -n "$pid" ]; then echo "检测到监控服务已经启动, PID:$pid, 将会先尝试kill该进程..." daemon_stop fi # 使用-u参数,将标准输出的结果不经缓存直接输出到日志文件 nohup poetry run python3 -u ./main.py >monitor.log 2>&1 & } daemon_status() { echo "********************************************" echo "查看监控服务状态..." status=$(ps -ef | grep python | grep main.py | grep -v grep) echo "$status" echo "********************************************" } daemon_stop() { echo "********************************************" echo "停止监控服务..." pid=$(ps -ef | grep python | grep main.py | grep -v grep | awk '{print $2}') if [ -n "$pid" ]; then echo "PID: $pid" kill -9 "$pid" fi echo "Done.." echo "********************************************" } daemon_restart() { echo "********************************************" daemon_stop daemon_start echo "Done.." echo "********************************************" } # 使用 ./start.sh start|stop|restart 来运行脚本启动服务 case "$1" in start) daemon_start ;; status) daemon_status ;; stop) daemon_stop ;; restart) daemon_restart ;; *) echo "Usage: ./start.sh {start|status|stop|restart}" exit 1 ;; esac exit 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章