2015-01-21 3 views
0

Я отчаянно пытаюсь найти способ заставить мою малину Pi запустить Raspbian для перезапуска при выполнении определенного условия (скрипт Python), однако до сих пор я не добился успеха. ..Мой Raspbian не перезагружается с помощью приложения Python

Я попытался следующие заявления с использованием POPEN:

sudo reboot -i -p 
sudo reboot -f 
sudo shutdown -r -f now 

Я думал, что проблема может быть вызовом через само приложение Python, поэтому я написал небольшую программу на с, чтобы убить все работающие приложения на Python и затем перезагрузиться, но не удался ...

Моя малина достаточна для питания (красный светодиод всегда включен), и все команды, описанные выше, отлично работают при вызове непосредственно из окна команд.

Любая помощь приветствуется!

Спасибо,

РЕДАКЦИЯ: Добавление моего питона скрипт в соответствии с требованиями:

from subprocess import Popen, PIPE 

    def reboot(): 
     echo.echo("Rebooting...") 
     db.write_alarm(get_alarm_status()) 
     upload.upload_log() 
     reboot_statement = "sudo shutdown -r -f now" 
     popen_args = reboot_statement.split(" ") 
     Popen(popen_args, stdout=PIPE, stderr=PIPE) 
+0

Можете ли вы вставить свой скрипт на python? –

+0

Hi Anupam. Только что добавлен. Thx –

+0

Я думаю, вам, возможно, придется запустить свой скрипт как root и избавиться от 'sudo'. Не из вашей учетной записи пользователя. – Geotob

ответ

0

Попробуйте это:

создать файл под названием rebo ot.py со следующим содержанием:

import os 
os.system("shutdown -r now") 

затем называют это так:

sudo python reboot.py 

Предполагая, что это работает, вы, вероятно, может вызвать свой оригинальный сценарий с Судом, чтобы заставить его работать.

0

Вы должны пройти shell=True идентификатор вы хотите скорлупу обрабатывать аргументы

Popen("sudo shutdown -r -f now", stdout=PIPE, stderr=PIPE, shell=True) 
+0

Я сломал аргументы как предложение (см. Мой вопрос), но все равно не получилось. Любая идея, что это может быть? –

+0

Попробуйте 'Popen (« sudo shutdown -r -f now », shell = True)' в REPL. Что он говорит? –

+0

Привет, Джон. Точно так же. :-( –

Смежные вопросы