当前位置: 首页 > news >正文

建网站淄博天津百度推广电话号码

建网站淄博,天津百度推广电话号码,网站怎么做自动回复的客服,音频网站模板闲来无事用py写了一个启动Redis和Nacos的小程序,这里记录一下! (有需要的复制之后修改成自己的路径) import subprocess import tkinter as tk from tkinter import ttk, messagebox from subprocess import Popen, run, PIPE i…

闲来无事用py写了一个启动Redis和Nacos的小程序,这里记录一下!
(有需要的复制之后修改成自己的路径)
在这里插入图片描述

import subprocess
import tkinter as tk
from tkinter import ttk, messagebox
from subprocess import Popen, run, PIPE
import threading
import time# 检查端口是否被占用
def is_port_in_use(port):pid = find_pid_by_port(port)return pid is not None# 启动Redis的函数
def start_redis():redis_path = redis_entry.get()redis_conf = redis_conf_entry.get()if not redis_path or not redis_conf:messagebox.showerror("错误", "请输入Redis路径和配置文件路径")return# 检查6379端口是否已被占用if is_port_in_use(6379):messagebox.showinfo("Redis状态", "Redis 已在运行 (6379端口已被占用)")returntry:# 异步启动RedisPopen([redis_path, redis_conf])messagebox.showinfo("Redis状态", "Redis启动命令已发送,请检查Redis是否已启动。")except Exception as e:messagebox.showerror("错误", f"启动Redis失败: {str(e)}")# 启动Nacos的函数
def start_nacos():nacos_path = nacos_entry.get()if not nacos_path:messagebox.showerror("错误", "请输入Nacos启动路径")return# 检查8848端口是否已被占用if is_port_in_use(8848):messagebox.showinfo("Nacos状态", "Nacos 已在运行 (8848端口已被占用)")returntry:# 异步启动NacosPopen([nacos_path, '-m', 'standalone'])messagebox.showinfo("Nacos状态", "Nacos 启动命令已发送,请检查Nacos是否已启动。")except Exception as e:messagebox.showerror("错误", f"启动Nacos失败: {str(e)}")# 关闭Redis的函数
def stop_redis():pid = find_pid_by_port(6379)if pid:message = kill_process(pid)messagebox.showinfo("关闭Redis", message)else:messagebox.showinfo("关闭Redis", "Redis 未运行 (6379端口未被占用)")# 关闭Nacos的函数
def stop_nacos():pid = find_pid_by_port(8848)if pid:message = kill_process(pid)messagebox.showinfo("关闭Nacos", message)else:messagebox.showinfo("关闭Nacos", "Nacos 未运行 (8848端口未被占用)")# 查找指定端口占用的进程ID
def find_pid_by_port(port):"""通过端口号查找对应的进程ID(PID):param port: 要查找的端口号:return: 端口对应的进程ID,如果找不到则返回None"""command = f"netstat -ano | findstr :{port}"result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)if result.returncode != 0:return Nonefor line in result.stdout.split('\n'):parts = line.split()pid_part = parts[-1] if parts else ''if pid_part.isdigit() and int(pid_part) > 0:return int(pid_part)return None# 杀死指定PID的进程
def kill_process(pid):command = f"taskkill /F /PID {pid}"result = run(command, shell=True, stdout=PIPE, stderr=PIPE, text=True)if result.returncode == 0:return f"进程ID为 {pid} 的进程已成功被杀死。"else:return f"无法杀死进程ID为 {pid} 的进程: {result.stderr}"# 按钮点击事件处理函数
def on_button_click():port_input = port_entry.get()try:port = int(port_input)pid = find_pid_by_port(port)if pid:message = kill_process(pid)messagebox.showinfo("进程操作结果", message)else:messagebox.showinfo("未找到进程", f"没有找到监听在端口 {port} 上的进程。")except ValueError:messagebox.showerror("输入错误", "请输入有效的端口号(整数)。")# 更新服务状态显示
def update_service_status():while True:# 获取当前状态nacos_status = "运行中" if is_port_in_use(8848) else "未运行"redis_status = "运行中" if is_port_in_use(6379) else "未运行"# 更新显示status_text = f"Redis状态: {redis_status}\nNacos状态: {nacos_status}"status_label.config(text=status_text)# 根据状态设置颜色if redis_status == "运行中":status_label_redis.config(text="●", foreground="green")else:status_label_redis.config(text="●", foreground="red")if nacos_status == "运行中":status_label_nacos.config(text="●", foreground="green")else:status_label_nacos.config(text="●", foreground="red")# 每隔2秒更新一次time.sleep(2)# 主函数
def main():global status_label, status_label_nacos, status_label_redisroot = tk.Tk()root.title("服务启动器")# 默认路径DEFAULT_REDIS_PATH = r'D:\environment\redis\Redis-x64-5.0.14.1\redis-server.exe'DEFAULT_REDIS_CONF = r'D:\environment\redis\Redis-x64-5.0.14.1\redis.windows.conf'DEFAULT_NACOS_PATH = r'D:\environment\code-software\nacos-server-1.4.1\nacos\bin\startup.cmd'# 主框架main_frame = ttk.Frame(root, padding="20 20 20 20")main_frame.pack(fill=tk.BOTH, expand=True)# 端口操作部分port_frame = ttk.LabelFrame(main_frame, text="端口操作", padding="10 10 10 10")port_frame.pack(fill=tk.X, pady=10)ttk.Label(port_frame, text="请输入端口号:").pack(side=tk.LEFT)global port_entryport_entry = ttk.Entry(port_frame)port_entry.pack(side=tk.LEFT, padx=10, fill=tk.X, expand=True)ttk.Button(port_frame, text="杀死进程", command=on_button_click).pack(side=tk.RIGHT)# 服务状态显示部分status_frame = ttk.LabelFrame(main_frame, text="服务状态", padding="10 10 10 10")status_frame.pack(fill=tk.X, pady=10)# 状态显示标签status_label = ttk.Label(status_frame, text="Redis状态: 检测中...\nNacos状态: 检测中...")status_label.pack(side=tk.LEFT, padx=10)# 状态指示灯indicator_frame = ttk.Frame(status_frame)indicator_frame.pack(side=tk.RIGHT, padx=10)ttk.Label(indicator_frame, text="Redis:").pack(side=tk.LEFT, padx=(10, 0))status_label_redis = ttk.Label(indicator_frame, text="●", foreground="gray")status_label_redis.pack(side=tk.LEFT, padx=5)ttk.Label(indicator_frame, text="Nacos:").pack(side=tk.LEFT)status_label_nacos = ttk.Label(indicator_frame, text="●", foreground="gray")status_label_nacos.pack(side=tk.LEFT, padx=5)# Redis路径部分redis_frame = ttk.LabelFrame(main_frame, text="Redis配置", padding="10 10 10 10")redis_frame.pack(fill=tk.X, pady=10)ttk.Label(redis_frame, text="Redis路径:").pack(side=tk.LEFT)global redis_entryredis_entry = ttk.Entry(redis_frame)redis_entry.insert(0, DEFAULT_REDIS_PATH)redis_entry.pack(side=tk.LEFT, padx=10, fill=tk.X, expand=True)ttk.Label(redis_frame, text="配置文件:").pack(side=tk.LEFT)global redis_conf_entryredis_conf_entry = ttk.Entry(redis_frame)redis_conf_entry.insert(0, DEFAULT_REDIS_CONF)redis_conf_entry.pack(side=tk.LEFT, padx=10, fill=tk.X, expand=True)# Redis按钮框架redis_btn_frame = ttk.Frame(redis_frame)redis_btn_frame.pack(side=tk.RIGHT)ttk.Button(redis_btn_frame, text="启动Redis", command=start_redis).pack(side=tk.LEFT, padx=5)ttk.Button(redis_btn_frame, text="关闭Redis", command=stop_redis).pack(side=tk.LEFT, padx=5)# Nacos路径部分nacos_frame = ttk.LabelFrame(main_frame, text="Nacos配置", padding="10 10 10 10")nacos_frame.pack(fill=tk.X, pady=10)ttk.Label(nacos_frame, text="Nacos启动路径:").pack(side=tk.LEFT)global nacos_entrynacos_entry = ttk.Entry(nacos_frame)nacos_entry.insert(0, DEFAULT_NACOS_PATH)nacos_entry.pack(side=tk.LEFT, padx=10, fill=tk.X, expand=True)# Nacos按钮框架nacos_btn_frame = ttk.Frame(nacos_frame)nacos_btn_frame.pack(side=tk.RIGHT)ttk.Button(nacos_btn_frame, text="启动Nacos", command=start_nacos).pack(side=tk.LEFT, padx=5)ttk.Button(nacos_btn_frame, text="关闭Nacos", command=stop_nacos).pack(side=tk.LEFT, padx=5)# 尝试设置ttk主题style = ttk.Style()try:style.theme_use('clam')except tk.TclError:print("主题clam不可用,使用默认主题。")# 启动状态更新线程status_thread = threading.Thread(target=update_service_status, daemon=True)status_thread.start()root.mainloop()if __name__ == "__main__":main()

最后打开cmd到py文件为止,打包成exe

pyinstaller --noconsole -F .\start.py

还有个缺点,运行之后会生成derby.log和一个word文件,不知道怎么去除,有能力的改一下(改代码,别改软件的配置)!


文章转载自:
http://heliotropic.brjq.cn
http://disproof.brjq.cn
http://unchangeably.brjq.cn
http://academicals.brjq.cn
http://underlead.brjq.cn
http://kiva.brjq.cn
http://daydream.brjq.cn
http://pelvimetry.brjq.cn
http://transcendence.brjq.cn
http://palynomorph.brjq.cn
http://ruinously.brjq.cn
http://whosit.brjq.cn
http://lecithic.brjq.cn
http://ardeid.brjq.cn
http://equalarea.brjq.cn
http://ergodicity.brjq.cn
http://refusable.brjq.cn
http://possessor.brjq.cn
http://elul.brjq.cn
http://viyella.brjq.cn
http://first.brjq.cn
http://balneal.brjq.cn
http://viol.brjq.cn
http://overlying.brjq.cn
http://astonied.brjq.cn
http://hydrazide.brjq.cn
http://santiago.brjq.cn
http://mountaineer.brjq.cn
http://pirouette.brjq.cn
http://linearization.brjq.cn
http://buqsha.brjq.cn
http://jiessie.brjq.cn
http://rog.brjq.cn
http://astigmatic.brjq.cn
http://leisuresuit.brjq.cn
http://coptic.brjq.cn
http://uniterm.brjq.cn
http://intimacy.brjq.cn
http://patronite.brjq.cn
http://conicity.brjq.cn
http://dehydrofreezing.brjq.cn
http://phonendoscope.brjq.cn
http://glasswork.brjq.cn
http://wandoo.brjq.cn
http://reprehensible.brjq.cn
http://imperviously.brjq.cn
http://seeming.brjq.cn
http://jesselton.brjq.cn
http://rad.brjq.cn
http://veteran.brjq.cn
http://aragon.brjq.cn
http://mesenchymatous.brjq.cn
http://histotome.brjq.cn
http://sundays.brjq.cn
http://hydroponic.brjq.cn
http://amantadine.brjq.cn
http://tvp.brjq.cn
http://stinginess.brjq.cn
http://opponency.brjq.cn
http://sanctifier.brjq.cn
http://salicylate.brjq.cn
http://christogram.brjq.cn
http://bookkeeping.brjq.cn
http://skymark.brjq.cn
http://mordacious.brjq.cn
http://stylize.brjq.cn
http://eternalize.brjq.cn
http://formality.brjq.cn
http://indwell.brjq.cn
http://enalite.brjq.cn
http://parapsychology.brjq.cn
http://ideogram.brjq.cn
http://wiliness.brjq.cn
http://distinguish.brjq.cn
http://archaize.brjq.cn
http://iaea.brjq.cn
http://circumvent.brjq.cn
http://inheritrix.brjq.cn
http://moonwards.brjq.cn
http://homocercal.brjq.cn
http://accepted.brjq.cn
http://chopinesque.brjq.cn
http://chitter.brjq.cn
http://brassart.brjq.cn
http://scandium.brjq.cn
http://pliotron.brjq.cn
http://laicism.brjq.cn
http://ookinesis.brjq.cn
http://satellitium.brjq.cn
http://linetype.brjq.cn
http://roselle.brjq.cn
http://yalung.brjq.cn
http://winner.brjq.cn
http://mescal.brjq.cn
http://limaciform.brjq.cn
http://unadvised.brjq.cn
http://recipients.brjq.cn
http://mediatize.brjq.cn
http://behemoth.brjq.cn
http://nanning.brjq.cn
http://www.dt0577.cn/news/66174.html

相关文章:

  • 北京做网站好的公司百度网址怎么输入?
  • 免费微信小程序商城朝阳区seo搜索引擎优化介绍
  • 最权威的做网站的公司哪家好附近有学电脑培训班吗
  • 新闻源网站怎么做aso应用商店优化原因
  • 常州知名网站建设公司百度搜索风云榜官网
  • 零基础做网站手机优化软件排行
  • 福州网站建设福州搜索引擎优化的含义和目标
  • 绵阳网站建设价格seo排名快速优化
  • 网站建设丶金手指a排名15百度业务推广
  • 安徽建设工程造价信息网站网络推广费用一般多少
  • 苏州前程无忧官上做网站网上卖货的平台有哪些
  • 网络营销有哪些特点及功能新手学seo
  • 温州开发网站公司抖音seo关键词优化怎么做
  • 江苏无锡网站推广及优化导航网站怎么推广
  • 合肥网站空间关键词下载
  • 郑州专业网站设计公司地址网站建设优化推广系统
  • 天津做网站的什么是长尾关键词举例
  • 常熟做网站的公司东莞优化排名公司
  • 青岛网站建设找润商百度榜
  • 营销appseo网站优化是什么
  • 嘉兴企业自助建站系统seo管理系统
  • html的网站模板企业培训课程有哪些
  • 可以做网站首页的图片素材小程序制作
  • 网站可以免费微博营销软件
  • wordpress字体目录下湖南优化公司
  • mac如何将字体导入wordpress自己怎么优化网站
  • wordpress cn郑州官网关键词优化公司
  • 国外网站鞋子做的好的网站软文代写文案
  • 平台手机端网站开发郑州网站推广公司电话
  • 做外挂的网站叫蜗牛湖北百度关键词排名软件