У меня есть python-бот, который я запускаю в командной строке и запрашивает у меня логин для начала работы.
Чтобы пропустить этот шаг, я добавляю канал, чтобы напрямую вставить логин в команду, как показано ниже, иэто работает:
printf "login" | python_module-py
Теперь я хочу запланировать запуск бота, чтобы не запускать его самостоятельно, и чтобы бот не нуждался в моем компьютере.
Итак, я купилDebian VPS и попытался создать сервис systemd. Я положил команду в оболочке. Вот мой сервис: (при условии, что мой скрипт находится в / home / user и у меня есть все права rwx)
[Unit]
Description=Description
After=network.target
[Service]
Type=simple
User=user
Group=group
WorkingDirectory=/home/user
ExecStart=./script.sh
[Install]
WantedBy=multi-user.target
Я попытался запустить его, но не удалось из-за этой ошибки:
TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'
Я почти уверен, что это потому, что логин не прошел через канал, и мне интересно, почему.
Пожалуйста, заранее простите меня за мой английский.
[ТАКЖЕИСПЫТАНО]
Сохраните команду в службе, используя /bin/sh -c
, также выдавая ту же ошибку:
ExecStart=/bin/sh -c '/usr/bin/printf "login" | /usr/bin/python3.7 -m python_module'