Ich habe ein Python-Programm. Es speichert eine Variable namens "pid" mit einer bestimmten PID eines Prozesses. Zuerst muss ich überprüfen, dass der Prozess, der diese PID-Nummer besitzt, wirklich der Prozess ist, nach dem ich suche, und wenn es so ist, muss ich ihn von Python löschen. Also zuerst muss ich irgendwie nachsehen, dass der Name des Prozesses zum Beispiel "ffinder" ist und wenn es ein finder ist, dann töt es. Ich muss eine alte Version von Python verwenden, damit ich psutil und subprocess nicht verwenden kann. Gibt es einen anderen Weg, dies zu tun?Holen Sie sich den Prozessnamen von pid
-2
A
Antwort
1
Sie können diese Information direkt vom /proc
Dateisystem erhalten, wenn Sie keine separate Bibliothek wie psutil verwenden möchten.
import os
import signal
pid = '123'
name = 'pfinder'
pid_path = os.path.join('/proc', pid)
if os.path.exists(pid_path):
with open(os.join(pid_path, 'comm')) as f:
content = f.read().rstrip('\n')
if name == content:
os.kill(pid, signal.SIGTERM)
/proc/[pid]/comm (since Linux 2.6.33) This file exposes the process's comm value—that is, the command name associated with the process. Different threads in the same process may have different comm values, accessible via /proc/[pid]/task/[tid]/comm. A thread may modify its comm value, or that of any of other thread in the same thread group (see the discussion of CLONE_THREAD in clone(2)), by writing to the file /proc/self/task/[tid]/comm. Strings longer than TASK_COMM_LEN (16) characters are silently truncated. This file provides a superset of the prctl(2) PR_SET_NAME and PR_GET_NAME operations, and is employed by pthread_setname_np(3) when used to rename threads other than the caller.
Verwandte Themen
- 1. Holen Sie sich Chrome-Tab pid von Chrome-Erweiterung
- 2. Holen Sie sich den Rückgabewert von JOptionPane
- 3. ASP: Holen Sie sich den Wert von Javascript mit GetElementbyId
- 4. WIN32_FIND_DATA - Holen Sie sich den absoluten Pfad
- 5. Wie erhält man PID nach Prozessnamen in Python?
- 6. Holen Sie sich den Funktionscode in Matlab?
- 7. PHP: Holen Sie sich den Browser-Namen
- 8. Holen Sie sich den Typ in Flex
- 9. Holen Sie sich den Spaltenindex eines Bereichs
- 10. Get Prozessname von PID
- 11. Holen Sie sich Fotoreferenz
- 12. Machen Sie den Python-Prozessnamen expliziter
- 13. Ändern Sie den Prozessnamen in C#?
- 14. Holen Sie sich den Text von Html.DropdownListFor .... MVC3
- 15. Holen Sie sich den Standort von Alexa Skills Kit (ASK)
- 16. SQL-Server - Holen Sie sich den neuesten Datensatz von Join
- 17. Holen Sie sich den onclick von Glyphicon in EditorFor
- 18. Holen Sie sich den Wert von Monaco Editor
- 19. Holen Sie sich den Schlüssel von der Karte der Karte
- 20. Starten Sie einen Prozess mit Python und holen Sie sich die PID (Linux)
- 21. Holen Sie sich Videotitel von ytdl-core
- 22. Holen Sie sich Herzfrequenz von Microsoft Band
- 23. WPF: Holen Sie sich Bild von Touch
- 24. Holen Sie sich UPN von Get-ADGroupMember
- 25. Holen Sie sich die PID eines Windows-Dienstes mit dem Namen des Dienstes
- 26. Holen Sie sich das Grafikkartenmodell?
- 27. Holen Sie sich ein Zeilenergebnis von MySQL
- 28. Holen Sie sich Twitter-Karte von API
- 29. Holen Sie sich das AspNetUser von HttpContext.Current.User
- 30. Holen Sie sich Python-Klasse von Element
'os.system ("killall PFINDER")' – alexis
möglich Duplikat http://stackoverflow.com/questions/4189717/get-process-name-by-pid – Tanu
os.system funktioniert nicht, weil es alle Prozesse mit diesem Namen beendet, nicht nur die, die getötet werden müssen. –