0 / 0 / 0
Регистрация: 28.04.2021
Сообщений: 102
1

Systemctl не запускает скрипт python

22.08.2021, 19:15. Показов 4086. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Решил разместить бота discord на отдельной машине и сделать авто старт скрипта python.
Главная проблема - systemctl не может запустить скрипт.

Что пишет после проверки статуса:
Код
[root@vds24377 bfra]# sudo systemctl status bfra_bot.service
● bfra_bot.service - d_bot service
   Loaded: loaded (/usr/lib/systemd/system/bfra_bot.service; enabled; vendor pre
   Active: failed (Result: exit-code) since Sun 2021-08-22 18:56:54 EEST; 2s ago
  Process: 94081 ExecStart=/usr/local/bin/python3.8 /app/bfra/main.py (code=exit
 Main PID: 94081 (code=exited, status=208/STDIN)

Aug 22 18:56:54  systemd[1]: Started d_bot service.
Aug 22 18:56:54  systemd[1]: bfra_bot.service: Main p
Aug 22 18:56:54  systemd[1]: bfra_bot.service: Failed
Что в файле service:
Код
[Unit]
Description=d_bot service
After=multi-user.target
Conflicts=getty@tty1.service

[Service]
Type=simple
ExecStart=/usr/local/bin/python3.8 /app/bfra/main.py
StandardInput=tty-force

[Install]
WantedBy=multi-user.target
p.s права '755' файлу 'main.py' выдал.

Что в самом скрипте:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import discord
 
client = discord.Client()
 
@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))
 
@client.event
async def on_message(message):
    if message.author == client.user:
        return
 
    if message.content.startswith('$hello'):
        await message.channel.send('Hello!')
 
client.run('')
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2021, 19:15
Ответы с готовыми решениями:

shell_exec не запускает скрипт
На веб-странице пытаюсь вызвать запуск команды powershell, но файл не создается. <?php...

Cron не запускает скрипт
Уважаемые форумчане! Проблемма возникла при попытке запуска php скрипта через планировщик cron!...

Cron не запускает скрипт
Привет. в гугле много нашёл на эту тему, но что-то ничего не помогло. Нужно запускать с помощью...

Cron не запускает sh-скрипт (CentOS 6.5)
Добрый день. CentOS 6.5 Помогите, пожалуйста, с Кроном. Почему-то не хочет запускать скрипт...

11
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,666
24.08.2021, 10:48 2
Цитата Сообщение от VordyV Посмотреть сообщение
systemctl не может запустить скрипт.
как это проявляется? что в логах?
0
0 / 0 / 0
Регистрация: 28.04.2021
Сообщений: 102
24.08.2021, 10:49  [ТС] 3
Вся информация представлена.
0
Alli_Lupin
24.08.2021, 10:54
  #4

Не по теме:

значит вам этого достаточно для самостоятельного решения проблемы) рад за вас) а мне, что бы вам попробовать помочь, нужны логи. нет логов - нет понимания, что происходит в системе.

0
188 / 89 / 35
Регистрация: 26.04.2021
Сообщений: 346
24.08.2021, 19:29 5
Цитата Сообщение от VordyV Посмотреть сообщение
Вся информация представлена.
Нет лога из journalctl
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,411
24.08.2021, 22:50 6
Цитата Сообщение от VordyV Посмотреть сообщение
Aug 22 18:56:54 systemd[1]: bfra_bot.service: Main p
Aug 22 18:56:54 systemd[1]: bfra_bot.service: Failed
Интересно, кто это выводит. И такое ощущение, что эти строки обрезаны.

Цитата Сообщение от VordyV Посмотреть сообщение
p.s права '755' файлу 'main.py' выдал.
Они ему не нужны, т.к. вы его запускаете явно через python3.8 (я бы рекомендовал через python3, что бы избежать проблем после обновления питона). К тому же, в вашем файле нет шибанг-строки
Python
1
#!/usr/bin/env python3
, поэтому давать этому файла права на запуск бессмысленно, т.к. система не будет знать, чем его запускать.
0
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,666
24.08.2021, 22:53 7
Цитата Сообщение от Humanoid Посмотреть сообщение
Интересно, кто это выводит. И такое ощущение, что эти строки обрезаны.
Это фрагмент journalctl. Да, обрезаны
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,411
24.08.2021, 23:17 8
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
Это фрагмент journalctl.
Это я понимаю... просто думал, что это вывод приложения. Не заметил, что там явно написано, что это сообщение от самого systemd.
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
Да, обрезаны
Странно, что верхние строки и нижние обрезаны на разную длину. Такое ощущение, что автор вручную слепил два разных вывода из консолей разной ширины.

В общем, похоже, что эту ошибку выводит само приложение... т.е. оно сразу вылетает с ошибкой 208. VordyV, вы его пробовали вручную запускать?
Bash
1
2
/usr/local/bin/python3.8 /app/bfra/main.py
echo $?
1
0 / 0 / 0
Регистрация: 28.04.2021
Сообщений: 102
25.08.2021, 10:27  [ТС] 9
Humanoid, 1. По началу я думал, что проблема в команде запуска, но я её вручную ввел и скрипт заработал (без ошибок, как некоторые думают, что systemd может не запустить из-за ошибок python).

2. В тех "обрезанных" строках был технический домен.

Добавлено через 38 минут
Из логов:
Код
Aug 25 10:12:28 vds24377.vds.space systemd[1]: Reloading.
Aug 25 10:12:28 vds24377.vds.space sudo[116865]: pam_unix(sudo:session): session closed for user root
Aug 25 10:12:33 vds24377.vds.space sudo[116882]:     root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/bin/systemctl start bfra_bot.service
Aug 25 10:12:33 vds24377.vds.space sudo[116882]: pam_systemd(sudo:session): Cannot create session: Already running in a session or user slice
Aug 25 10:12:33 vds24377.vds.space sudo[116882]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Aug 25 10:12:33 vds24377.vds.space systemd[1]: Started d_bot service.
Aug 25 10:12:33 vds24377.vds.space sudo[116882]: pam_unix(sudo:session): session closed for user root
Aug 25 10:12:33 vds24377.vds.space systemd[116885]: bfra_bot.service: Failed to set up standard input: Inappropriate ioctl for device
Aug 25 10:12:33 vds24377.vds.space systemd[116885]: bfra_bot.service: Failed at step STDIN spawning /usr/local/bin/python3.8: Inappropriate ioctl for device
Aug 25 10:12:33 vds24377.vds.space systemd[1]: bfra_bot.service: Main process exited, code=exited, status=208/STDIN
Aug 25 10:12:33 vds24377.vds.space systemd[1]: bfra_bot.service: Failed with result 'exit-code'.
Aug 25 10:12:40 vds24377.vds.space sudo[116887]:     root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/bin/systemctl status bfra_bot.service
Aug 25 10:12:40 vds24377.vds.space sudo[116887]: pam_systemd(sudo:session): Cannot create session: Already running in a session or user slice
Aug 25 10:12:40 vds24377.vds.space sudo[116887]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Aug 25 10:12:45 vds24377.vds.space sshd[116890]: error: kex_exchange_identification: Connection closed by remote host
Aug 25 10:13:16 vds24377.vds.space sudo[116887]: pam_unix(sudo:session): session closed for user root
Aug 25 10:13:16 vds24377.vds.space rsyslogd[15426]: imjournal: journal files changed, reloading...  [v8.1911.0-7.el8_4.2 try https://www.rsyslog.com/e/0 ]
Aug 25 10:13:38 vds24377.vds.space sshd[116894]: Invalid user rust from 45.61.187.179 port 45374
Aug 25 10:13:38 vds24377.vds.space sshd[116894]: pam_unix(sshd:auth): check pass; user unknown
Aug 25 10:13:38 vds24377.vds.space sshd[116894]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=45.61.187.179
Aug 25 10:13:41 vds24377.vds.space sshd[116894]: Failed password for invalid user rust from 45.61.187.179 port 45374 ssh2
Aug 25 10:13:42 vds24377.vds.space sshd[116894]: Received disconnect from 45.61.187.179 port 45374:11: Bye Bye [preauth]
Aug 25 10:13:42 vds24377.vds.space sshd[116894]: Disconnected from invalid user rust 45.61.187.179 port 45374 [preauth]
Aug 25 10:13:42 vds24377.vds.space sshd[116896]: Invalid user test from 45.61.187.179 port 48874
Aug 25 10:13:42 vds24377.vds.space sshd[116896]: pam_unix(sshd:auth): check pass; user unknown
Aug 25 10:13:42 vds24377.vds.space sshd[116896]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=45.61.187.179
Aug 25 10:13:44 vds24377.vds.space sshd[116896]: Failed password for invalid user test from 45.61.187.179 por
0
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,666
25.08.2021, 10:34 10
Лучший ответ Сообщение было отмечено VordyV как решение

Решение

Гугл по запросу Inappropriate ioctl for device говорит, что проблема в подключении к стандартному потоку ввода. Моей компетенции не хватает, что бы понять, где у вас использование потока ввода, но, возможно, вы знаете, где это и можете реализовать ввод как-то иначе.
1
0 / 0 / 0
Регистрация: 28.04.2021
Сообщений: 102
25.08.2021, 12:12  [ТС] 11
Сервис заработал, но тогда когда убрал строку "standardInput=tty-force".
Думаю, проблема решена.
0
4284 / 964 / 138
Регистрация: 29.01.2013
Сообщений: 5,666
25.08.2021, 12:39 12
Цитата Сообщение от VordyV Посмотреть сообщение
"standardInput=tty-force".
Видимо это и был стандартный ввод, который не нравился системе.
0
25.08.2021, 12:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2021, 12:39
Помогаю со студенческими работами здесь

Скрипт, каторый запускает файл
Здравствуйте, у меня возникла проблема, что один python скрипт, который работает с vk_api, сам по...

dpkg --configure -a запускает не рабочий скрипт
Всем примет. Пытался на squizee поставить enlightenment e17 через deb пакет скаченный с оф...

Программа на Python которая читает и запускает алгоритм
Необходимо создать базу данных болезней и их симптомов (к 1 болезни по 2 симптома)совершенно все...

Как определить скрипт, который запускает sendmail?
Привет. Есть виртуальный сервер, centos 6. На нем куча сайтов, под каждый создан свой пользователь....

Компилятор Python завершает программу без ошибок, но не запускает ее
Писал программу на Python в онлайн компиляторе replit , и программа полностью функционирует,...

Сервер не запускает скрипт на выполнение пока он не освободится от предыдущего процесса.
Здравствуйте! Сделал чат: AJAX EventSource и php на стороне сервера отдельный файл с бесконечным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru