На сервере не получается запустить сразу 2 программы на python

Рейтинг: 0Ответов: 1Опубликовано: 29.04.2023

Я имею сервер на Ubuntu 22.04. Есть скрипт который срабатывает при запуске сервера.

Вот он:

#!/bin/bash
cd /root/Tic_tak_toe_project_2/Tic_tak_toe_project/
sudo /usr/bin/python3 main.py  > /dev/null
cd ~
cd /root/Scenario_bot/
sudo /usr/bin/python3 main.py  > /dev/null

Один main.py это сайт, второй это бот в Telegram

Почему-то запускается только main.py отвечающий за сайт(первый), а второй нет. Но если я вручную включаю второй main.py, он работает. Что не так я делаю?

Ответы

▲ 1Принят

Так происходит по той причине, что у вас не возвращается управление дальше в скрипт.

Оператор & используется для того, чтобы организовать исполнение команд в фоновом режиме. Если поставить значок & после команды, то оболочка вернет управление пользователю сразу после запуска команды, не дожидаясь, пока выполнение команды завершится. Например, если задать в командной строке "command1 & command2 &", то оболочка запустит команду command1, сразу же затем команду command2, и затем немедленно вернет управление пользователю

#!/bin/bash
cd /root/Tic_tak_toe_project_2/Tic_tak_toe_project/
sudo /usr/bin/python3 main.py  > /dev/null &
cd ~
cd /root/Scenario_bot/
sudo /usr/bin/python3 main.py  > /dev/null &

По идее так должно сработать