Artikelverzeichnis
Vorwort
Im Projekt wird Frp verwendet, um in das Intranet einzudringen, aber aufgrund der Möglichkeit von Netzwerkschwankungen, die auch zu Frp-Unterbrechungen führen können, möchte ich diese Situation vermeiden, indem ich das Frp-Programm wie folgt regelmäßig neu starte:
1. Abhängigkeitsinstallation
Die hier erforderlichen Python-Abhängigkeiten sind relativ gering. Sie müssen nur den Zeitplan installieren (dieses Paket ist sehr klein und wird ohne Spiegelung schnell installiert). Dieser wird für geplante Aufgaben direkt in der laufenden Python-Umgebung verwendet. Führen Sie den folgenden Befehl aus :
pip install schedule
2. Starten Sie die Aufgabe neu
In diesem Teil werden wir den Code veröffentlichen. Die allgemeine Logik besteht darin, zuerst die Programm-ID zu erkennen, die wir neu starten möchten, sie dann zu beenden und neu zu starten. Der Code lautet wie folgt:
import os,sys,schedule
import subprocess,time
def restart_frp():
child =subprocess.Popen(["pgrep","-f","xxx"],stdout=subprocess.PIPE,)
pid=child.stdout.read().decode("utf-8").strip()
#print(pid)
if pid!="":
os.system("kill -9 "+pid)
child2=subprocess.Popen("xxx",stdout=subprocess.PIPE,shell=True)
print(time.strftime("%Y-%m-%d %H:%M",time.localtime()))
if __name__ == '__main__':
restart_frp()
schedule.every().hour.do(restart_frp)
while True:
schedule.run_pending()
Dabei ist xxx der Name des Programms, das Sie bedienen möchten
3. Fehleraufzeichnungen
Wenn während des Betriebs der folgende Fehler auftritt:
Führen Sie die folgenden Vorgänge aus:
Schritt 1: Führen Sie den Befehl aus
ls -l /bin/sh
Wenn das angezeigte Ergebnis ist: /bin/sh -> dash, dann führen Sie den zweiten Schritt aus:
sudo dpkg-reconfigure dash (出现窗口选择no)
Der dritte Schritt besteht darin, den Befehl erneut auszuführen:
ls -l /bin/sh
Nachdem es als /bin/sh -> bash angezeigt wird, führen Sie das Programm einfach erneut aus
Referenzlink: Fehlerbehebung
Zusammenfassen
Das Obige ist der gesamte Inhalt dieses Artikels. Wenn etwas nicht stimmt, korrigieren Sie mich bitte.