Возможно, при запуске службы произошла ошибка, поскольку вы указали относительный путь к сертификату. Должен быть абсолютный путь к файлу сертификата. Когда система запускает службу, она не меняет $PWD на расположение сценария.
Вы можете скопировать сертификат в/etc/ssl/certs
(в соответствии с этим ответом)и изменить:
verify = 'cloud-server-ca-chain.pem'
-:
verify = '/etc/ssl/certs/cloud-server-ca-chain.pem'
в вашем коде (Файл "/heartbeat/deviceAPI/DeviceAPIClient.py", строка 40)
Вы также можете изменить свой сценарий инициализации, чтобы изменить каталог на местоположение сертификата, а затем запустить программу Python.
screen
запущена dash
или другая оболочка, которая не распознает эти специфичные для bash -экраны подсказок внутри PS1
.
Либо установите для переменной среды SHELL
значение /bin/bash
перед запуском screen
, запустите ее как screen -s /bin/bash
, либо установите следующее в~/.screenrc
:
shell /bin/bash
Команда ~/.screenrc
имеет приоритет над переключателем командной строки -s
, который имеет приоритет над $SHELL
envvar. Если ни один из них не установлен, будет использоваться /bin/sh
.