python微服务启动脚本

由于微服务比较多 ,为了每次省事方便,写成了脚本启动,把所有的微服务jar包集中写成启动脚本,代码如下:

#!/usr/bin/env python3
import os
import sys, subprocess
import time


class Startup(object):
    def __init__(self, ServerName, Pid):
        self.ServerName = ServerName
        self.Pid = Pid

    def start(self, cmd):
        pid = subprocess.getstatusoutput(self.Pid)
        if not pid[-1]:
            os.system(cmd)
        else:
            print('%s is already running.pid=%s' % (self.ServerName, pid))

    def stop(self):
        while True:
            pid = subprocess.getstatusoutput(self.Pid)
            if pid[-1]:
                os.system('kill -9 %s' % pid[-1])
                time.sleep(10)
            else:
                print('%s is not running' % self.ServerName)
                break

    def status(self):
        pid = subprocess.getstatusoutput(self.Pid)
        if pid[-1]:
            print('%s is already running.pid=%s' % (self.ServerName, pid))
        else:
            print('%s is Not Running' % self.ServerName)


if __name__ == '__main__':
    # 修改对应自己的java包服务
    service_dict = {
        '1': 'xxxx01.jar',
        '2': 'xxxx02.jar',
        '3': 'xxxx03.jar'
    }
    service_str = '------请选择下面数字对应的服务-------\n'
    for s in str(service_dict).strip('{}').split(','):
        service_str += s.strip() + '\t\n'
    print(service_str)

    # 暂时支持3个,如超过3个自行添加
    num = input("请输入jar服务对应的数字:")
    if num == '1':
        ServerName = service_dict.get(num)
        start_cmd = 'java -jar /data/01/%s >/data/01/nohup.out 2>&1 &' % ServerName
    elif num == '2':
        ServerName = service_dict.get(num)
        start_cmd = 'java -jar /data/02/%s >/data/02/nohup.out 2>&1 &' % ServerName
    elif num == '3':
        ServerName = service_dict.get(num)
        start_cmd = 'java -jar /data/03/%s >/data/03/nohup.out 2>&1 &' % ServerName
    else:
        print('输入错误!请输入服务的正确数字!!!')
        sys.exit()

    Pid = "ps -ef|grep %s |grep -v grep |awk '{print $2}'" % ServerName
    startup = Startup(ServerName, Pid)

    try:
        if sys.argv[1] == 'start':
            startup.start(start_cmd)
        elif sys.argv[1] == 'stop':
            startup.stop()
        elif sys.argv[1] == 'restart':
            startup.stop()
            startup.start(start_cmd)
        elif sys.argv[1] == 'status':
            startup.status()
    except Exception:
        print("Usage: py xxx.py [start|stop|restart|status]")

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值