2017-09-29 69 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 
)