【python】使用python脚本启动或重启java应用

 【需求】

某java应用是以jar包执行在linux服务器上,每次用新包替换旧包后,需要先用命令“ps -ef|grep dce”找出已经执行的pid,然后用“kill -9 pid”来关掉启动的应用,再执行“./startup.sh -s 8192m -x 8192m -j dce-webapp-datam.jar”启动此应用。

以上查找、关闭、启动三部曲稍显麻烦,希望能写一个脚本一次性执行完它们。

 

【解决方案】

使用python脚本能完成此任务,其中:

os模块的system命令能执行linux命令

os模块的popen指令能执行linux命令并获得管道输出

re模块的match指令能查找pid和cmd

有此三项加上python的列表和字典就能完成任务。

 

【代码】

import os
import re

# 执行ps命令,获得管道输出,用正则式找到pid和命令放入字典
dic={}
pattern='\w+\s+(\d+)\s+(.*)'
lines=os.popen('ps -ef|grep dce').readlines()
for line in lines:
    matcher=re.match(pattern,line)
    pid=matcher.group(1)
    cmd=matcher.group(2)
    dic[pid]=cmd

# 在字典值中找指定项,找了以字典键kill
for key,value in dic.items():
    if value.find('dce-webapp-datam.jar')!=-1:
        os.system('kill -9 '+key)

# 再次启动应用
os.system('./startup.sh -s 8192m -x 8192m -j dce-webapp-datam.jar')

 

【参考资料】

https://blog.csdn.net/qdPython/article/details/108979978

posted @ 2022-08-25 06:32  不朽的飞翔  阅读(309)  评论(0编辑  收藏  举报