@azbukait
Изучаю самостоятельно языки

Множественный запуск скрипта без причины, где ошибся?

Доброго дня, знатоки!

У меня есть телеграмм бот написаный на питоне. В папке расположения бота создал файл crontab.sh со следующим содержимым:
#!/bin/bash
if [ "pgrep -f bot.py" != 0 ]
	then {
		sleep 1  #delay
		/usr/bin/python3.6 /home/usertest/bot.py
		exit 1
	}
else
	{
		echo "Exit! Python bot is already running!"
		exit 1
	}
fi;

файл crontab.sh сделал исполняемым:
chmod u+x /home/usertest/crontab.sh

Далее выполнил под текущим пользователем
crontab -e
и добавил следующую строку:
*/5 * * * * /home/usertest/crontab.sh
по какой-то причине бот запускается в 2-3-4-5 и тд экземплярах. Помогите разобраться
Операционная система ubuntu 18.04
  • Вопрос задан
  • 184 просмотра
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
#!/bin/bash
PIDFILE=/home/usertest/bot.pid

if pgrep --pidfile $PIDFILE &>/dev/null; then
    echo "Exit! Python bot is already running!"
    exit 1
else
  nohup /usr/bin/python3.6 /home/usertest/bot.py &>/dev/null &
  echo $!>$PIDFILE
fi
Ответ написан
Oxyd
@Oxyd
Linux enthusiast
#!/bin/bash
if pgrep -f "/usr/bin/python3.6 /home/usertest/bot.py" >&/dev/null
 then {
    echo "Exit! Python bot is already running!"
    exit 1
  }
else
  {
    sleep 1  #delay
    /usr/bin/python3.6 /home/usertest/bot.py
    exit 0
  }
fi;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы