Scripts Python pára depois de algum tempo - raspberryPi 3

1

Estou usando o Ubuntu Mate em meu raspberry pi3, estou tentando fazer uma conexão de soquete cliente-servidor usando python, o script de cliente deve ser executado toda vez que o raspberry pi for inicializado e o script também deve ser executado para sempre.

Aqui está o meu código de cliente

import socket
import sys
import urllib.request
import time
import datetime

TCP_IP = sys.argv[1]
TCP_PORT = int(sys.argv[2])
BUFFER_SIZE = 1024
MESSAGE = "response"
flag = 0


def func():
    try:
        global flag
        flag = 1
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        print("Socket Created")
        s.connect((TCP_IP, TCP_PORT))
        s.send(MESSAGE.encode())
        print("Sent 'response' message to server")
        while True:
            data = s.recv(BUFFER_SIZE)
            if not data:
                raise Exception('This is the exception you expect to handle')
            reply = data.decode().strip()
            print(reply)
            li = reply.split(",")
            if len(li) == 2:
                r = urllib.request.urlopen("http://127.0.0.1/sm.php?set=" + li[0] + "&device=" + li[1])
            else:
                s.send("received to client".encode())
    except Exception as e:
        now = datetime.datetime.now()
        stamp = now.strftime("%Y-%m-%d %H:%M:%S")
        with open("/home/mohit/ML/client_error.txt", "a") as myfile:
                    myfile.write(str(e) + " " + str(stamp)+"\n")
        print(str(e))
        time.sleep(10)
        s.close()
        s.detach()
        flag = 0
        return


while True:
    if flag == 0:
        func()

s.close()

Para iniciar o script quando o Ubuntu for inicializado, eu o adicionei em /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

python3 /home/mohit/ML/Server.py &
sleep 60
python3 /home/mohit/ML/ClientSocket.py xx.xx.xx.xx xxportxx &

exit 0

Após a inicialização, o arquivo ClientSocket.py é executado por algum tempo e, em seguida, o arquivo para de executar, para fins de teste, executei o arquivo ClientSocket.py manualmente em um terminal eo arquivo foi executado corretamente nesse caso. Não consigo entender por que o arquivo python para de executar sozinho.

    
por Mohit Badwal 27.04.2018 / 11:20

0 respostas