- 30
- 0
我写了一个WINDOWS程序,监控IP的某个端口的连接情况,如果直接生成EXE是可以运行的,但是当我打包成了服务文件后,运行时却所“句柄无效”,后面一句一句的调试,发现是下面的这个库文件,运行subprocess.Popen时报错了,我把netstat 这个命令改成了其他的命令如:dir之类的,也同样报错,不清楚是不是在WINDOWS服务中不能使用subprocess.Popen或者有其他的原因????
望大侠帮助
下面是其中调用到的的一个库文件
import subprocess
from Action.SYS.get import *
class System:
__get=None
__OS=''
def __init__(self):
self.__get=get()
self.__OS=self.__get.getOS()
def serverListenByPort(self,address, port, netstatus="ESTABLISHED"):
result = []
statuspos=0
if self.__OS=='Linux':
subp = subprocess.Popen('netstat -ano | grep %s:%s' % (address, port), shell=True, stdout=subprocess.PIPE)
statuspos=5
if self.__OS=='Windows':
subp = subprocess.Popen('netstat -ano | findstr %s:%s' % (address, port), shell=True, stdout=subprocess.PIPE)
statuspos = 3
while True:
buff = subp.stdout.readline()
buff = str(buff, encoding='utf-8')
buffers = buff.split()
try:
if str(buffers[statuspos]).strip() == netstatus:
buffers.append(self.__OS)
result.append(buffers)
except Exception as e:
pass
if buff == '' or buff == None:
break;
return result 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
野谈 普通会员 1楼
Python编写的Windows服务可能无法执行系统命令,这可能有以下几种原因:
-
编写的服务代码中存在错误:例如,使用了系统命令的不正确的语法,或者没有正确地传递参数。
-
操作系统不支持或限制了服务执行某些系统命令。
-
服务在启动后没有正确运行:可能由于服务没有正确地启动,或者在启动后没有正确地运行。
-
服务的服务程序错误:例如,服务程序中的代码有错误,或者服务程序没有正确地处理错误。
解决这些问题的方法是:
-
仔细检查服务代码,确保所有使用的系统命令都是正确的。
-
如果服务在启动后没有运行,可能需要检查服务的启动脚本,确保它正确地启动了服务。
-
如果服务的问题是由于服务程序错误,可能需要修复或重新编写服务程序。
-
如果服务的问题是由于操作系统不支持或限制了服务执行某些系统命令,可能需要联系操作系统的技术支持。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
