python - торнадо SSL_SESSION_ID_CALLBACK_FAILED при запуске системы - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть общесистемная служба, которая запускается после службы ssh на Raspberry Pi.Вот файл службы:

[Unit]
Description=myscriptservice
After=ssh.service
Requires=ssh.service

[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/python3 -u /home/pi/script.py > /home/pi/script.log 2>&1

[Install]
WantedBy=multi-user.target

Сценарий запускает сервер WebSocket, к которому клиент (который является веб-приложением на том же компьютере) пытается подключаться каждые 30 секунд.Вот код сценария:

def start_server():
    try:
        application = tornado.web.Application([(r"/", EchoWebSocket)], debug=True)
        ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
        ssl_ctx.load_cert_chain('/home/pi/cert.crt',
                                '/home/pi/cert.pem')
        server = HTTPServer(application, ssl_options=ssl_ctx)
        server.listen(5555)
        tornado.ioloop.IOLoop.current().start()
    except BaseException as error:
        log_error(str(error))
        sys.exit('got error in server')
    finally:
        log_info("started server")

Давайте перейдем к проблеме.Когда скрипт запускается при запуске системы как служба systemd, я получаю это предупреждение Sep 23 08:46:37 hostname python3[429]: WARNING:tornado.general:SSL Error on 9 ('192.168.40.210', 37674): [SSL: SSL_SESSION_ID_CALLBACK_FAILED] ssl session id callback failed (_ssl.c:720)

Если я просто перезапускаю службу и клиент пытается подключиться снова, она работает.Так может быть, что при запуске отсутствует определенная зависимость?Я искал в Интернете и спросил своих коллег.Я не могу найти ответ.Так что это моя последняя надежда.

...