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