2017-09-29 38 views
0

我正在为python服务制作一个web控制器,以便用户可以启动和停止服务。我需要能够知道服务是否正在运行。批处理测试如果python.exe运行特定文件

我想检查python是否从cmd运行我的脚本。 echo 1如果正在运行我的脚本,否则echo 0

如:

if (python is running bot.py) (
    echo 1 
) 
+0

不清楚你在问,请编辑和添加更多的细节什么 – TomEus

+0

添加排序为例 – BaleineBleue

+0

,你可以创建一个实际的使用PyWin32的Windows服务。可以使用服务API或通过sc.exe从命令行启动,停止和查询服务。 – eryksun

回答

0

你很可能是最好关闭具有被运行中的机器人创建了一个文件,其中包含其PID,然后检查了这个文件的存在。它可以让你获得PID,但它确实依赖于被干净地终止的进程。

这与锁文件类似,它可以用来停止同时在同一数据上运行的程序的2个实例。

1

它是在普通CMD有点棘手,不过这似乎工作:

@echo off 
tasklist.exe /V /FI "IMAGENAME eq cmd.exe" /FO LIST | find "bot.py" >nul 
if ERRORLEVEL 1 (
    echo 0 
) else (
    echo 1 
)