Hallo Leute,
Printausgaben in eine .txt umzuleiten ist kein Problem.
aber wie leite ich die Ausgabe von
pidof programmname
in eine Datei um?
Wer hat einen Tip.
Danke
Knuffi
Ausgabe umleiten in Datei in Python3
-
- User
- Beiträge: 73
- Registriert: Samstag 28. Januar 2023, 20:19
- Wohnort: Nähe Wien
- Kontaktdaten:
Ich gehe davon aus, dass du das Kommando in der Befehlszeile aufrufst.
In allen mir bekannten System wird datei im aktuellen Arbeitsverzeichnis abgelegt.
Achte darauf, dass eine gleichnamige Datei in diesem Verzeichnis noch nicht existiert. Sie würde sonst überschrieben werden.
Hat nichts mit Python zu tun.
In allen mir bekannten System wird datei im aktuellen Arbeitsverzeichnis abgelegt.
Achte darauf, dass eine gleichnamige Datei in diesem Verzeichnis noch nicht existiert. Sie würde sonst überschrieben werden.
Hat nichts mit Python zu tun.
- DeaD_EyE
- User
- Beiträge: 1224
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Das hier ist ein Forum über Python, also gehe ich mal von aus, dass du mit Python die pid-Datei öffnen und irgendwas damit machen willst.
Da unter Linux so gut wie alles eine Datei ist, kommt man an die Namen der laufenden Programme ziemlich einfach.
Zu finden ist der Name in /proc/<PID>/comm.
Wenn man das z.B. mit Python machen will:
Da unter Linux so gut wie alles eine Datei ist, kommt man an die Namen der laufenden Programme ziemlich einfach.
Zu finden ist der Name in /proc/<PID>/comm.
Wenn man das z.B. mit Python machen will:
Code: Alles auswählen
from pathlib import Path
def pidof(name: str) -> list[int]:
return [
int(match.parent.name)
for match in Path("/proc/").glob("*/comm")
if match.read_text().rstrip() == name
]
pidof(name="bash")
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
- __blackjack__
- User
- Beiträge: 14005
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Oder „cross platform“ mit dem `psutil`-Modul:
Code: Alles auswählen
#!/usr/bin/env python3
import psutil
def pidof(name):
return [
process.pid
for process in psutil.process_iter(["name"])
if process.info["name"] == name
]
def main():
print(pidof("apache2"))
if __name__ == "__main__":
main()
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
- DeaD_EyE
- User
- Beiträge: 1224
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Ja, das ist auf jeden Fall die bessere Lösung, da man sich selbst nicht um die Unterschiede des OS kümmern muss.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server