Вопрос:

Перезагрузите Raspberry Pi, если служба не работает

python raspberry-pi crontab

565 просмотра

2 ответа

3025 Репутация автора

Я запускаю Bitorrent Sync от моего Raspberry Pi. Очень иногда он по какой-то причине отключается. Я пытаюсь запустить скрипт из crontab, который будет проверять соединение, но я также хочу проверить состояние службы btsync ( sudo service btsync status). Как я могу поместить это в скрипт, который будет запускаться из Crontab, посмотреть на вывод и инициировать перезагрузку, если что-то кроме «работает»?

Автор: Inigo Источник Размещён: 22.08.2016 08:52

Ответы (2)


1 плюс

641 Репутация автора

Проверьте, запущен ли процесс, с помощью ps aux. Назовите приведенный ниже скрипт как btsync_reboot.sh, и chownон будет показан пользователю, запустившему cron

#!/bin/sh
echo "check service $(date)" >> /var/log/btsync-check.log
ps auxw | grep btsync | grep -v grep > /dev/null

if [ $? != 0 ]
then
        echo "rebooting at $(date)" >> /var/log/btsync-reboot.log
        reboot now >> /var/log/btsync-reboot.log
else 
        echo "btsync is running"  >> /var/log/btsync-check.log
fi

Cron выражение: * * * * * sh /path/to/btsync-reboot.sh

Автор: acsrujan Размещён: 22.08.2016 09:16

3 плюса

106 Репутация автора

Решение

Вы можете выполнить те же действия, что и для checkwifi.sh, но сделайте это checkbtsync.sh

Что-то в этом роде должно работать:

#!/bin/sh    
btsyncResult=$(sudo service btsync status)

if [[ $btsyncResult != *"is running"* ]]
then
    sudo /sbin/shutdown -r now
fi 

Теоретически, это возьмет результат вашей команды состояния btsync и сохранит его в переменной как текст. если текст не содержит слова «бегущий», он выключается. Все остальное как шаги checkwifi по указанной вами ссылке:

сохраните его по адресу /usr/local/bin/checkbtsync.sh

тогда беги

sudo chmod 775 /usr/local/bin/checkbtsync.sh

Затем crontab получает эту новую строку:

*/5 * * * * /usr/bin/sudo -H /usr/local/bin/checkbtsync.sh >> /dev/null 2>&1
Автор: Billy Jackson Размещён: 22.08.2016 09:18
Вопросы из категории :
32x32