Проблема с синтаксисом для telegram бота

Имеется скрипт, который используется для бота telegram (выводит информацию по запросу) При запуске через shell все работает корректно, однако при размещении скрипта на VDS и попытке запуска скрипта через systemd появляется ошибка:

 systemd[1]: bot.service: Unit entered failed state.
 bot.service: Failed with result 'exit-code'.

При просмотре лога вижу следующее:

 systemd[1]: bot.service: Service hold-off time over, scheduling restart.
 systemd[1]: Stopped Telegram bot 'telegramb'.
 systemd[1]: Started Telegram bot 'telegramb'.
 python3[29683]:   File "/usr/local/bin/bot/telegramb.py", line 35
 python3[29683]:     bot.send_message(message.chat.id, f'\u0426\u0435\u043d\u0430 <br/>\u0430\u043a\u0446\u0438\u0438 - {pricesale}\n'
 python3[29683]:
 python3[29683]: SyntaxError: invalid syntax
 systemd[1]: bot.service: Main process exited, code=exited, status=1/FAILURE
 systemd[1]: bot.service: Unit entered failed state.
 systemd[1]: bot.service: Failed with result 'exit-code'.

Синтаксис строчки на которую указывает ошибка:

@bot.message_handler(commands=['price'])
    def start_message(message):
        bot.send_message(message.chat.id, f'Цена акции - {pricesale}\n'
          f'Стоимость акции при покупке - {p2}\n'
          f'Стоимость акции при продаже - {p1}\n'
          f'Чистая прибыль - {p8}\n'
          f'Налоги/комиссии - {p7}')

Юнит:

[Unit]
Description=Telegram bot 'telegramb'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/usr/local/bin/bot
ExecStart=/usr/bin/python3 /usr/local/bin/bot/telegramb.py
RestartSec=10
Restart=always
 
[Install]
WantedBy=multi-user.target

На одном из ресурсов вычитал, что вроде как есть различия в синтаксисе для запуска скриптов через shell и systemd. В связи с этим вопрос - как должен выглядеть синтаксис, чтобы он работал и на shell, и через systemd ?


Ответы (0 шт):