Auslesen von Prozessinfos
This commit is contained in:
		
							parent
							
								
									07f272ff1f
								
							
						
					
					
						commit
						6e5755ecaa
					
				
							
								
								
									
										69
									
								
								python/show-proc-data.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								python/show-proc-data.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import struct
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def read_proc_data(pid):
 | 
				
			||||||
 | 
					    '''Liest Daten einer Prozess-ID aus /proc aus und zeigt diese an'''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    proc_dir = '/proc/{0}'.format(pid)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if not os.path.exists(proc_dir):
 | 
				
			||||||
 | 
					        return "Prozess mit PID {0} existiert nicht.".format(pid)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    # Lese die Daten aus dem /proc-Verzeichnis
 | 
				
			||||||
 | 
					    for filename in os.listdir(proc_dir):
 | 
				
			||||||
 | 
					        file_path = os.path.join(proc_dir, filename)
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        # Ueberspringe Dateien, die keine Informationen enthalten
 | 
				
			||||||
 | 
					        if filename in [".", "..", "task", "mem", "cwd", "exe", "pagemap"]:
 | 
				
			||||||
 | 
					            continue
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            if filename in ("environ", "cmdline"):
 | 
				
			||||||
 | 
					                with open(file_path, "rb") as file:
 | 
				
			||||||
 | 
					                    environ_data = file.read()
 | 
				
			||||||
 | 
					                    print("{0}:".format(filename))
 | 
				
			||||||
 | 
					                    for line in environ_data.decode("utf-8", errors="replace").split("\x00"):
 | 
				
			||||||
 | 
					                        if line:
 | 
				
			||||||
 | 
					                            print(line)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    print()
 | 
				
			||||||
 | 
					            elif filename == "auxv":
 | 
				
			||||||
 | 
					                with open(file_path, "rb") as file:
 | 
				
			||||||
 | 
					                    auxv_data = file.read()
 | 
				
			||||||
 | 
					                    print("{0}:".format(filename))
 | 
				
			||||||
 | 
					                    i = 0
 | 
				
			||||||
 | 
					                    while i < len(auxv_data):
 | 
				
			||||||
 | 
					                        entry_type, entry_value = struct.unpack("qq", auxv_data[i:i+16])
 | 
				
			||||||
 | 
					                        print("Type: {0}, Value: {1}".format(entry_type, entry_value))
 | 
				
			||||||
 | 
					                        i += 16
 | 
				
			||||||
 | 
					                    print()
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                with open(file_path, "r") as file:
 | 
				
			||||||
 | 
					                    print("{0}:".format(filename))
 | 
				
			||||||
 | 
					                    for line in file:
 | 
				
			||||||
 | 
					                        line = line.rstrip("\n")
 | 
				
			||||||
 | 
					                        if line:
 | 
				
			||||||
 | 
						                        print(line)
 | 
				
			||||||
 | 
					                    print()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        except (IOError, UnicodeDecodeError):
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    if len(sys.argv) != 2:
 | 
				
			||||||
 | 
					        print("Bitte geben Sie die Prozess-ID (PID) als Argument an.")
 | 
				
			||||||
 | 
					        sys.exit(1)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        pid = int(sys.argv[1])
 | 
				
			||||||
 | 
					    except ValueError:
 | 
				
			||||||
 | 
					        print("Ungueltige Prozess-ID (PID).")
 | 
				
			||||||
 | 
					        sys.exit(1)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    read_proc_data(pid)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user