[ TAG 154 ][22.09.2021] -Erfolgreich -IAP-20210601-20210722-1145 -RPRCSL -psutil
Ich habe die heute Worksession um [22.09.2021][0800] begonnen. Zu diesen Zeitpunkt haben wir den [22.09.2021][0953].
Gestern habe ich eine neue Liste eingeführt. Diese Liste wird im Hauptprozess geführt. Es enthält Instanzen und Informationen über die ausgeführten Prozesse.
Meine Überlegung besteht darin, Status-Informationen über die Prozesse zu speichern. Relevant wäre für mich, der Lebensverlauf von den Prozessen. Der gestrige Entwurf eines Items in dieser Liste sieht wie folgt aus. Es hat noch keine Informationen über den Ausführungsstatus.
'inst': <Process name='Process-2'
'pid': 16252,
'ppid': 10416,
'authkey': b'}q\xe0\xceq\x1e\x06`pc\xbd\x04\xd5\xfb+k\xde\xef\x82Y\x83\xe7$\xa1\xaeT\xfa\xe2\x80\x8f\x7f;'
}
s2 - p.is_alive(): False
Ich denke um den Ausführungsstatus ordnungsgemäß erfassen zu können, benötige ich eine zusätzliche library. Meine kurze Recherche zu diesen Thema führte mich zu [psutil]. Zu diesen Zeitpunkt ist die Version [psutil 5.8.0] veröffentlicht. Auf den ersten Blick enthält die [psutil] sehr viele Informationen über die Hardware.
Ich finde jedoch heute sollte es nicht mein Entwicklungsschwerpunkt sein. Zu diesen Zeitpunkt sollte ich am besten eine vereinfachte Version der Status-Informationen einführen.
- Quelle zu [psutil]:
- [psutil] - pypi
- [psutil] - readthedocs.io
- Quellen:
- Process status constants
- create_time()
- Consolen-Befehl
- [ pip install psutil ]
- Quelle:
print("PSUTIL - TEST")
print(f"psutil.cpu_count(): {psutil.cpu_count()}")
print(f"psutil.cpu_count(logical=False): {psutil.cpu_count(logical=False)}")
print("")
[22.09.2021][1520] - [Prozess Start]
p = Process(target=ALOG, args=(alog_glb.APL,))Ausgabe:
p_itm = {"inst": p, "name": p.name, "pid": p.pid, "ppid": os.getpid(), "authkey": p.authkey}
print(f"s0 - p_itm: {p_itm}")
print(f"s0 - p.is_alive(): {p.is_alive()}")
print("")
p.start()
p_itm = {"inst": p, "name": p.name, "pid": p.pid, "ppid": os.getpid(), "authkey": p.authkey}
print(f"s1 - p_itm: {p_itm}")
print(f"s1 - p.is_alive(): {p.is_alive()}")
print("")
p_psutil = psutil.Process(p.pid)
p_name = None
p_pid = None
p_ppid = None
p_status = None
p_cpu_time = None
p_cpu_percent = None
p_create_time_0 = None
p_create_time_1 = None
with p_psutil.oneshot():
p_name = p_psutil.name()
p_pid = p_psutil.pid
p_ppid = p_psutil.ppid()
p_status = p_psutil.status()
p_cpu_time = p_psutil.cpu_times()
p_cpu_percent = p_psutil.cpu_percent()
p_create_time_0 = p_psutil.create_time()
p_create_time_1 = datetime.datetime.fromtimestamp(p_create_time_0).strftime("%Y-%m-%d %H:%M:%S")
print("")
print("PSUTIL - TEST")
print(f"p_name: {p_name}")
print(f"p_pid: {p_pid}")
print(f"p_ppid: {p_ppid}")
print(f"p_status: {p_status}")
print(f"p_cpu_time: {p_cpu_time}")
print(f"p_cpu_percent: {p_cpu_percent}")
print(f"p_create_time_0: {p_create_time_0}")
print(f"p_create_time_1: {p_create_time_1}")
print("")
p.join()
p_itm = {"inst": p, "name": p.name, "pid": p.pid, "ppid": os.getpid(), "authkey": p.authkey}
print(f"s2 - p_itm: {p_itm}")
print(f"s2 - p.is_alive(): {p.is_alive()}")
print("")
print("")
print("")
- Quellen:
- class psutil.Process(pid=None)
- name()
- []
- pid
- [https://psutil.readthedocs.io/en/latest/#psutil.Process.pid]
- ppid()
- [https://psutil.readthedocs.io/en/latest/#psutil.Process.ppid]
- status()
- [https://psutil.readthedocs.io/en/latest/#psutil.Process.status]
- [https://psutil.readthedocs.io/en/latest/#process-status-constants]
- cpu_time()
- [https://psutil.readthedocs.io/en/latest/#psutil.Process.cpu_times]
- cpu_percent()
- [https://psutil.readthedocs.io/en/latest/#psutil.Process.cpu_percent]
- create_time()
- [https://psutil.readthedocs.io/en/latest/#psutil.Process.create_time]
[22.09.2021][1707] - Ich beende für heute die Worksession. Die heutige Arbeit legt die Grundlagen für [RPRCSL]-Liste. Diese Liste muss jedoch in den kommenden Worksessions entworfen und die Anwendungsgebiete erarbeitet werden.
Artem Kraft
Kommentare
Kommentar veröffentlichen