Directorio de artículos
prefacio
En el proyecto, Frp se usa para penetrar en la intranet, pero debido a la posibilidad de fluctuaciones en la red, que también pueden causar la interrupción de Frp, quiero evitar esta situación reiniciando el programa frp regularmente, de la siguiente manera:
1. Instalación de dependencia
Las dependencias de python requeridas aquí son relativamente pocas, solo necesita instalar el programa (este paquete es muy pequeño y se instalará rápidamente sin duplicar), esto se usa para tareas programadas, directamente en el entorno de python en ejecución. Ejecute el siguiente comando :
pip install schedule
2. Reiniciar la tarea
En esta parte, publicaremos el código. La lógica general es detectar la identificación del programa que queremos reiniciar primero, luego eliminarlo y reiniciarlo. El código es el siguiente:
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()
Donde xxx es el nombre del programa que desea operar
3. Registros de errores
Si encuentra el siguiente error durante la operación:
realice las siguientes operaciones:
Paso 1, ejecute el comando
ls -l /bin/sh
Si el resultado que se muestra es: /bin/sh -> guión, ejecute el segundo paso:
sudo dpkg-reconfigure dash (出现窗口选择no)
El tercer paso es ejecutar el comando nuevamente:
ls -l /bin/sh
Después de que se muestre como /bin/sh -> bash, simplemente ejecute el programa nuevamente
Enlace de referencia: resolución de errores
Resumir
Lo anterior es todo el contenido de este artículo, si hay algún problema, corríjame.