es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué crontab siempre reinicia mi script de Python con un nuevo PID?

Tengo un script de python3 y me gustaría que se iniciara automáticamente después de un reinicio. Se inicia, pero siempre inicia con un nuevo PID, lo comprobé con ps aux. Si inicio el archivo a través de la terminal, se ejecuta en el mismo PID.

Utilicé
@reboot /usr/bin/python3 /path/myFile.py
en crontab

import sys

from cryptography import x509
sys.path.insert(0, “..”)
import time

from opcua import ua, Server

if name == “main“:

# configuración de nuestro servidor
server = Server()
server.set_endpoint("opc.tcp://0.0.0.0:4842/freeopcua/server/")

# configuración de nuestro propio espacio de nombres, no es realmente necesario pero debería hacerse según las especificaciones
uri = "http://examples.freeopcua.github.io"
idx = server.register_namespace(uri)


# obtener el nodo Objetct, aquí es donde deberíamos poner nuestros nodos
objects = server.get_objects_node()

# llenado de nuestro espacio de direcciones
myobj = objects.add_object(idx, "MiObjeto")
startCali = myobj.add_variable(idx, "Iniciar Calibración", True)
brigthness = myobj.add_variable(idx, "Brillo", 0.0)

brigthness.set_writable()
startCali.set_writable()    # Configurar MiVariable como escribible por clientes
oldstartCalivar = 0
oldbrightnesss = 1.0




# ¡comenzando!
server.start()

try:
    count = 0
    while True:
        time.sleep(1)

        if brigthness.get_value () != oldbrightnesss:
            changeBrightness = "xrandr --output eDP-1 --brightness %f" % (brigthness.get_value()) 
        oldbrightnesss = brigthness.get_value()


finally:
    # cerrar la conexión, eliminar subscripciones, etc.
    server.stop()
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible que el PID cambie cuando se utiliza @reboot en crontab. Para asegurarse de que se utiliza el mismo PID, se puede utilizar nohup para iniciar el script.

    Se puede utilizar el siguiente comando en crontab:

    @reboot nohup /usr/bin/python3 /ruta/miArchivo.py &

Comments are closed.