Töten mit python

Ich muss ein Skript machen, das vom Benutzer das folgende erhält:

1) Prozessname (auf Linux).

2) Der Log-Dateiname, den dieser Prozess darauf schreibt.

Es muss den Prozess töten und überprüfen, ob der Prozess heruntergefahren ist. Ändern Sie den Namen der Protokolldatei in einen neuen Dateinamen mit der Uhrzeit und dem Datum. Und dann den Prozess noch einmal, überprüfen Sie, dass es in Ordnung ist, wird es weiterhin auf die Protokolldatei zu schreiben.

Vielen Dank im Voraus für die Hilfe.

  • Setup.py - Symlink ein Modul zu / usr / bin nach der Installation
  • Wie man den Zieldatei den vollständigen (absoluten Pfad) der symbolischen Verknüpfung oder des weichen Links in python findet
  • Starten Sie einen Linux-Daemon von Python
  • Wie kann ich das "Backend" in Matplotlib in Python setzen?
  • Lesen Sie den Inhalt einer PDF-Datei
  • Python select () Verhalten ist seltsam
  • 2 Solutions collect form web for “Töten mit python”

    Sie können die Prozess-ID (PID) abrufen, die es mit dem Befehl pgrep wie pgrep angeben hat:

     import subprocess import signal import os from datetime import datetime as dt process_name = sys.argv[1] log_file_name = sys.argv[2] proc = subprocess.Popen(["pgrep", process_name], stdout=subprocess.PIPE) # Kill process. for pid in proc.stdout: os.kill(int(pid), signal.SIGTERM) # Check if the process that we killed is alive. try: os.kill(int(pid), 0) raise Exception("""wasn't able to kill the process HINT:use signal.SIGKILL or signal.SIGABORT""") except OSError as ex: continue # Save old logging file and create a new one. os.system("cp {0} '{0}-dup-{1}'".format(log_file_name, dt.now())) # Empty the logging file. with open(log_file_name, "w") as f: pass # Run the process again. os.sytsem("<command to run the process>") # you can use os.exec* if you want to replace this process with the new one which i think is much better in this case. # the os.system() or os.exec* call will failed if something go wrong like this you can check if the process is runninh again. 

    Hoffe das kann helfen

    Wenn Sie wissen, wie man es im Terminal macht, dann könnten Sie folgendes verwenden:

     import os os.system("your_command_here; second_command; third; etc") 

    So dass Sie am Ende mit einer Art Shell-Skript in Python. Ich würde auch erwägen, diese Shell-Skript existieren auf eigene Faust und dann rufen Sie es aus Python:

     import os os.system("path/to/my_script.sh") 

    Prost!

    Python ist die beste Programmiersprache der Welt.