2021-10-21简易Tomcat启动/关闭服务应用程序

传统启动方法:

        1.通过终端方式:cmd  startup

        2.直接进入Tomcat/bin目录下点击startup.bat

准备工作:

        需要安装库:pip  install Pyside2 

                             pip install subprocess

        使用工具:VS Code 、Qt Designe

        修改conf/logging.properties日志配置文件来屏蔽掉日志信息,也可以设置成OFF,直接禁用掉。

2021-10-21简易Tomcat启动/关闭服务应用程序

修改在tomcat的安装目录conf文件夹下server.xml里配置,将AccessLogValve注释掉:

2021-10-21简易Tomcat启动/关闭服务应用程序

修改tomcatbin/setclasspath.bat文件中找到 set_RUNJAVA="%JRE_HOME\bin\java", 并修改为set_RUNJAVA="%JRE_HOME\bin\javaw"

2021-10-21简易Tomcat启动/关闭服务应用程序

不会出现在任务栏上,而只是在后台运行

2021-10-21简易Tomcat启动/关闭服务应用程序

最后,上代码

from PySide2.QtCore import QFile
from PySide2.QtWidgets import QApplication
from PySide2.QtUiTools import QUiLoader
from PySide2.QtGui import  QIcon
import subprocess
import time

class Stats:

    # 类初始化
    def __init__(self):
        # 从文件中加载UI定义
        qfile_stats = QFile('UI/server.ui')
        qfile_stats.open(QFile.ReadOnly)
        qfile_stats.close()
        self.ui = QUiLoader().load(qfile_stats)

        # 设置QPlainTextEdit为只读状态
        self.ui.cfg_log.setReadOnly(True)
        
        # 当按钮被点击就会发出 clicked 信号,可以这样指定处理该信号的函数
        self.ui.start_btn.clicked.connect(self.cmd_start)
        self.ui.stop_btn.clicked.connect(self.cmd_stop)
        self.ui.clear_btn.clicked.connect(self.cmd_clear)

        # 结果是时间戳,显示本地时间
        self.localTime = time.asctime(time.localtime(time.time()))

        # 设置界面标题
        self.ui.setWindowTitle('TOMSER')
    # 启动
    def cmd_start(self):
        # cmd = 'cmd.exe D:\\Py\\Day04\\bat\\startup.bat'
        self.p = subprocess.Popen("cmd.exe /c" + "D:\\Py\\Day04\\bat\\startup.bat", stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
        self.sta_suc = '\t--------------------Tomcat服务器已启动--------------------'

        # 用format 格式化函数设置指定位置,在QPlainTextEdit显示时间和信息
        self.ui.cfg_log.appendPlainText('{1}\n{0}'.format(self.localTime,self.sta_suc))

        for cur in range(5):
            self.curline = self.p.stdout.readline()
            self.ui.cfg_log.appendPlainText('{0} {1}'.format(cur,str(self.curline)))

        # 当点击启动按钮后,禁用状态
        self.ui.start_btn.setEnabled(False)

    # 关闭
    def cmd_stop(self):
        # cmd = 'cmd.exe D:\\Py\\Day04\\bat\\shutdown.bat'
        self.p = subprocess.Popen("cmd.exe /c" + "D:\\Py\\Day04\\bat\\shutdown.bat", stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
        self.sta_suc = '\n\n\t--------------------Tomcat服务器已关闭--------------------'
        self.ui.cfg_log.appendPlainText('{0}\n{1}'.format(self.sta_suc,self.localTime))
        for cur in range(5):
            # 读取整行返回信息
            self.curline = self.p.stdout.readline() 
            self.ui.cfg_log.appendPlainText('{0} {1}'.format(cur,str(self.curline)))
        # 当点击关闭按钮后,立即变成禁用状态;启动按钮恢复启用状态
        self.ui.stop_btn.setEnabled(False)
        self.ui.start_btn.setEnabled(True)

    # 清屏
    def cmd_clear(self):
            self.ui.cfg_log.clear() 

# 初始化操作
app = QApplication([])
# 添加主窗口图标
app.setWindowIcon(QIcon('images/Tomcat.ico'))
# 类的实例化
stats = Stats()
# 在主窗口上所有的控件都显示在屏幕上
stats.ui.show()
# 关闭主窗口Tomcat服务器在后台也关闭了
app.aboutToQuit.connect(stats.cmd_stop) 
# 运行主循环,并在退出时返回状态代码
app.exec_()

  运行成功后

  打包程序:pyinstaller Tomcat.py --noconsole --hidden-import PySide2.QtXml --icon = "图片路径"

  启动Tomcat应用程序

        进入../dist\Tomcat目录,双击Tomcat.exe

  2021-10-21简易Tomcat启动/关闭服务应用程序

 2021-10-21简易Tomcat启动/关闭服务应用程序

2021-10-21简易Tomcat启动/关闭服务应用程序

上一篇:获取当前文件夹下所有文件夹的 用户访问权限


下一篇:python subprocess库