psutil undtagelsesfejl - Ingen sådan proces på Linux, fungerer på Windows - Python

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at skrive et program til overvågning af processer i python med psutil (den eneste jeg fandt, er cross platform)
Jeg har brug for at overvåge processer, når de startede, og når de er afsluttet.
Jeg lavede 2 lister, 1 for de nuværende processer og 2 for tidligere processer og 2 sløjfer, der kontrollerer, om en proces i aktuel ikke er i forrige, så tilføj ham og udskriv hans navn og den anden sløjfe, der kontrollerer, om en proces i prev er ikke i øjeblikket, så udskriv hans navn og 'opsiges', den første loop fungerer godt, men den anden fungerer kun på Windows, mens det på Linux giver mig fejlen psutil.\_exceptionsNoSuchProcess


oldProcess = []
while 1:
    newProcess = list(psutil.process\_iter())
    for process in newProcess:
        if process in oldProcess:
            continue
        else:
            print "new process: " + process.name()
            oldProcess.append(process)
    for process in oldProcess:
        if process not in newProcess:
            print "process terminated: " + process.name()
            oldProcess.remove(process)

Bedste reference