วันอังคารที่ 12 มกราคม พ.ศ. 2564

python check process running

ถ้าเราต้องการตรวจสอบว่า โปรแกรมที่เราเขียนยังทำงานอยู่ไหม ทำดังนี้

 ลง psutil

 pip install psutil

 

 

สร้างไฟล์ checkMyProgram.py ที่ /home/pi เพื่อเช็คการทำงานของโปรแกรมที่ชื่อว่า MyProgram

import psutil
import datetime

def checkIfProcessRunning(processName):
    '''
    Check if there is any running process that contains the given name processName.
    '''
    #Iterate over the all the running process
    for proc in psutil.process_iter():
        try:
            # Check if process name contains the given name string.
            if processName.lower() in proc.name().lower():
                return True
        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
            pass
    return False;



time = datetime.datetime.now()
fileName = "/home/pi/TagAgent/MyProgramLog" + time.strftime("%Y-%m-%d_%H") +".txt"

d = open(fileName, "a")
d.write(time.strftime("%H:%M:%S"))

if checkIfProcessRunning('MyProgram'):
    d.write(" MyProgram still alive!\n")
    d.close()
else:
    d.write(" Not found MyProgram!\n")
    d.close()


หลังจากการรัน checkMyProgram.py ด้วยคำสั่ง python checkMyProgram.py แล้ว จะมีการสร้างไฟล์ที่ชื่อว่า /home/pi/MyProgramLogตามด้วยปีเดือนวันชั่วโมง.txt ขึ้นมา

เพื่อให้มาเปิดดูในภายหลังว่า โปรแกรม MyProgram ยังทำงานอยู่หรือไม่ หรือว่าตายไปตั้งแต่ช่วงไหน


ถ้าเราต้องการเช็คทุก 1 นาที ก็ให้ใช้ crontab เข้าช่วย

crontab -e

เพิ่มเข้าไปบรรทัดสุดท้าย

* * * * * python /home/pi/checkMyProgram.py


https://thispointer.com/python-check-if-a-process-is-running-by-name-and-find-its-process-id-pid/ 

https://www.programiz.com/python-programming/datetime/current-time

https://www.w3schools.com/python/python_datetime.asp

ไม่มีความคิดเห็น: