服务器自动化启动 SpringBoot 项目 Python 脚本

在服务器上部署SpringBoot 项目时,因为是打的 jar 包,还得 kill 掉原来的进程再重新部署,过于麻烦就写了一个自动化的脚本来完成这个功能。(需要 Python 环境)其中一些路径可根据实际情况进行配置。jvm 参数也可以进行适当调整!

#!/usr/bin/python
# -*- coding:utf-8 -*-
import os,sys,time,commands
from sys import argv

times = time.strftime('%Y年%m月%d日%H:%M:%S')
_jdkpath_ = '填写你的JDK路径'
_processpath_ = 'jar包名字'
_fileDir_ = 'jar包所在路径'
_jarpath_ = _fileDir_ + _processpath_
_logpath_ = _fileDir_ + '日志路径'
_gclog_   = _fileDir_ + 'gc日志路径'
_jarvar_ = '-Xms256m -Xmx640m -Xss256K -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+UseAdaptiveSizePolicy'

def getpid():
    pid = commands.getoutput("ps aux | grep %s | grep -v grep | awk '{print $2}'" % _processpath_)
    return pid

def _status_():
    j_pid = getpid()
    if j_pid == '':
        print("%s没有运行" % _processpath_)
    else :
        print("%s进程pid值:" % _processpath_ + getpid())

def _start_():
    j_pid = getpid()
    if j_pid != '':
        print("%s已经在运行..." % _processpath_)
    else :
        print("启动%s......" % _processpath_)
        time.sleep(4)
        if os.system('%s -jar -XX:+PrintGCDetails -Xloggc:%s %s %s > %s 2>&1 &' % (_jdkpath_,_gclog_,_jarvar_,_jarpath_,_logpath_)) == 0:
            print("启动%s成功,进程pid值:" % _processpath_ + getpid())

def _stop_():
    s_pid = getpid()
    if s_pid == '':
        print("%s没有运行" % _processpath_)
    else :
        print("关闭%s......" % _processpath_)
        os.system('kill -9 ' + s_pid)
	os.system('echo "">%s && echo "">%s' % (_gclog_,_logpath_))
        time.sleep(2)
        if s_pid != '0':
            print("关闭%s成功" % _processpath_)
        else :
            print("关闭%s失败" % _processpath_)

def _restart_():
    _stop_()
    time.sleep(2)
    _start_()

if argv == "-h" or argv == "--help" or len(argv)==1:
    print "☻☻☻请别害怕,这只是个简单的脚本,对应用和系统都是无损的☻☻☻\n%s,温馨提示用法:%s {start|stop|restart|status}" % (times,argv[0])

elif argv[1] == 'start':
    _start_()
elif argv[1] == 'stop':
    _stop_()
elif argv[1] == 'restart':
    _restart_()
elif argv[1] == 'status':
    _status_()
else: 
    print "☻☻☻请别害怕,这只是个简单的脚本,对应用和系统都是无损的☻☻☻\n%s,温馨提示用法:%s {start|stop|restart|status}" % (times,argv[0])

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值