关闭时后台进程服务还存活,或者启动前端口被占用
封装的一个Kill函数方法,启动前可以调用kill_for_port函数,谨慎使用特殊端口(这里可以再把一些常用端口做个判断,录入22 3306等端口,就自行添加了)
# coding=utf-8
import os
import signal
import psutil
def kill_for_port(port: int):
"""根据端口判断是否存在程序"""
# 获取当前的网络连接信息
net_con = psutil.net_connections()
for con_info in net_con:
if con_info.laddr.port == port:
os.kill(con_info.pid, signal.SIGTERM)
def kill_for_pid(pid: int):
# 根据Pid删除
os.kill(pid, signal.SIGTERM)
# 原理:获取正在运行程序的pid,通过pid获取程序名,再按程序名进行判断
def if_process_running(process_name):
pl = psutil.pids()
result = "没有运行"
for pid in pl:
if psutil.Process(pid).name() == process_name:
if isinstance(pid, int):
result = "正在运行"
return result
def net_pid_port(pid: int):
"""根据pid寻找该进程对应的端口"""
a_list = []
# 获取当前的网络连接信息
net_con = psutil.net_connections()
for con_info in net_con:
if con_info.pid == pid:
a_list.append({pid: con_info.laddr.port})
return a_list
版权说明
本文地址:http://www.liuyangdeboke.cn/?post=41
未标注转载均为本站远程,转载请注明文章出处:
发表评论