Edit: HALT! Er fragt dich nach dem Passwort von admin? Wenn du das nicht hast, wie hast du dich dann überhaupt eingeloggt?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Raspi mit Smarthome/Smartvisu-Image: Wie geht Shutdown?
Einklappen
X
-
Hi,
das hängt glaube ich mit Deinem Terminalprogramm zusammen.Zitat von accelle Beitrag anzeigenLeider bekomme ich sowohl bei sudo halt als auch bei sudo init 0 folgende Fehlermeldung:
Code:sudo: no tty present and no askpass program specified
Bei mir funktioniert sowohl "sudo halt -p" als auch "sudo poweroff" ohne Probleme auf einem Vanilla SmartHome.Pi Image.
Was gibt den den env bei dir aus?
Ein Ausschnitt von meiner env:
Und nein, poweroff möchte ich nicht in SmartControl aufnehmen. Ich denke 99% lassen Ihren Pi laufen.Code:SSH_TTY=/dev/pts/0 TERM=xterm-256color
Bis bald
Marcus
Kommentar
-
Das war mein Denkfehler. Ich dachte, er fragt mich nach dem Passwort für den Superuser.Zitat von Sipple Beitrag anzeigenEdit: HALT! Er fragt dich nach dem Passwort von admin? Wenn du das nicht hast, wie hast du dich dann überhaupt eingeloggt?
sudo poweroff funktioniert.
Danke an alle, die sich wegen meiner mangelnden Linux-Kenntnisse den Kopf zerbrochen haben ;-)
Gruß
Peter
Kommentar
-
Hi,
ich greif das Thema nochmals auf, da mein Anliegen etwas noch etwas weiter führt.
Ich möchte den RasPi herunterfahren wenn ich das Haus verlasse. Als ersten Versuch habe ich im Terminalals user admin ausgeführt, was auch funktioniert hat. So weit, so gut.Code:sudo shutdown -hP -t 5 now
Nun möchte ich das ganze aber über eine GA ausführen lassen. Geht das?
VG!
Kommentar
-
Hallo,
endlich habe ich auch mal Zeit gefunden, mich um das GA gesteuerte Herunterfahren zu kümmern.
Leider klappt das nicht auf Anhieb aber als Laie kann ich den Fehler nicht entdecken, und es wäre toll, wenn ich etwas Hilfestellung bekäme.
Was habe ich gemacht?
Die logic.conf angepasst:
Eine neue Konfigurations-Datei zentral.conf:Code:[shutdown] filename = shutdown.py watch_item = zentral.shutdown # monitor for changes
Ein neues Python-Skript namens smarthome.pyCode:# /usr/local/smarthome/items/zentral.conf [zentral] name = Zentral [[shutdown]] type=bool knx_dpt=1 knx_listen=7/0/0
In der Log-Datei /usr/smarthome/var/log/smarthome.log sehe ich die GA.Code:#!/usr/bin/python3.2 # # logics/smarthome.py # # Logik zum Herunterfahren vom Smarthome.py # # 2015-04-01 Version 1.0 # shell Kommando: sudo shutdown -hP -t 5 now import time logger.info('Das System wird in 10 Sekunden heruntergefahren.') time.sleep(10) # delays for 10 seconds subprocess.call(["/usr/smarthome/bin/smarthome.py --stop"]) subprocess.call(["sudo shutdown -hP -t 5 now"])
So wie ich das verstehe, wird die Logik aufgerufen, 10 Sekunden gewartet und dann der erste Befehl versucht auszuführen. Dann kommt es zu einem Fehler, da angeblich der Pfad nicht gefunden wird. Aber der Ort von smarthome.py ist korrekt. Der zweite Befehl wird dann gar nicht mehr ausgeführt.Code:2015-04-01 21:43:40,725 DEBUG Main Item zentral.shutdown = True via KNX 0.0.0 7/0/0 -- item.py:__update:363 2015-04-01 21:43:40,733 DEBUG Main Triggering shutdown - by: Item source: zentral.shutdown dest: None value: True -- scheduler.py:trigger:162 2015-04-01 21:43:40,739 INFO shutdown Das System wird in 10 Sekunden heruntergefahren. -- shutdown.py:<module>:13 2015-04-01 21:43:40,749 INFO Main knx: 1.1.254 set 7/0/0 to True -- __init__.py:parse_telegram:190 ... 2015-04-01 21:43:50,791 ERROR shutdown Logic: shutdown, File: /usr/lib/python3.2/subprocess.py, Line: 1371, Method: _execute_child, Exception: [Errno 2] No such file or directory: '/usr/smarthome/bin/smarthome.py --stop' -- scheduler.py:_task:334 Traceback (most recent call last): File "/usr/smarthome/lib/scheduler.py", line 327, in _task exec(obj.bytecode) File "/usr/smarthome/logics/shutdown.py", line 20, in <module> subprocess.call(["/usr/smarthome/bin/smarthome.py --stop"]) File "/usr/lib/python3.2/subprocess.py", line 471, in call return Popen(*popenargs, **kwargs).wait() File "/usr/lib/python3.2/subprocess.py", line 745, in __init__ restore_signals, start_new_session) File "/usr/lib/python3.2/subprocess.py", line 1371, in _execute_child raise child_exception_type(errno_num, err_msg) OSError: [Errno 2] No such file or directory: '/usr/smarthome/bin/smarthome.py --stop'
Hast jemand einen Tipp für mich, was da schief läuft? Vielen Dank.
VG!!
Zuletzt geändert von nobillings; 01.04.2015, 20:51.
Kommentar
-
Hallo,
Ich verwende auch USB (Hager) und das Programmieren mit ETS3 über den Pi geht problemlos solange ich den
PC über Kabel ans Ethernet hänge. WLAN macht gelegentlich Probleme. Aber nur selten.
Wenn du die USB Verbindung abziehst und wieder verbindest reicht ein Neustart des eibd um
alles wieder ans laufen zu bringen. Den ganzen Pi musst du nicht runterfahren.
Michael
Kommentar
-
Hallo,
ist schon klar, das mit dem Ast, aber das ist ja auch das Ziel.
Zur Erklaerung:
Bei mir im Rack habe ich mehrere PIs und den Russound. Wenn ich die 24/7 durchlaufen lasse, kostet das auf Dauer 'ne Menge Strom. Da wir die meiste Zeit die Geraete jedoch nicht nutzen (schlafen, weg) schalte ich die Steckerleiste per Aktor aus. Momentan halt ohne den PI runterzufahren. Damit ich aber die SD-Karte schone, will ich den Rechner vorher ordentlich herunterfahren. Bei dem piCorePlayer brauche ich das nicht, da der ja nur im RAM laueft und die Karte nicht nutzt.
Gibt es eine Erklaerung, warum der Stop-Befehl nicht funktioniert?
VG!
Kommentar
-
Hallo,
ja, Du hältst Dich nicht an die Syntax bei dem Subprocess Aufruf. Siehe python doku.Zitat von nobillings Beitrag anzeigenGibt es eine Erklaerung, warum der Stop-Befehl nicht funktioniert?
Bis bald
Marcus
P.S. Der Shutdown-Befehl würde so auch nicht klappen.Zuletzt geändert von callidomus; 02.04.2015, 15:58.
Kommentar
-
ok, wenn ich smarthome.py zuerst beende wird der shutdwon Befehl nicht mehr ausgeführt. Das sehe ich ein.
Die Python-Doku gibt zu Shutdown zwei Beispiele:
https://docs.python.org/3.2/library/subprocess.html#using-the-subprocess-module
Code:subprocess.call([I]args[/I], [I]*[/I], [I]stdin=None[/I], [I]stdout=None[/I], [I]stderr=None[/I], [I]shell=False[/I])
Den zweiten hatte ich gewählt.Code:[COLOR=#C65D09][B]>>> [/B][/COLOR]subprocess[COLOR=#666666].[/COLOR]call([[COLOR=#4070A0]"ls"[/COLOR], [COLOR=#4070A0]"-l"[/COLOR]]) [COLOR=#303030]0[/COLOR] [COLOR=#C65D09][B]>>> [/B][/COLOR]subprocess[COLOR=#666666].[/COLOR]call([COLOR=#4070A0]"exit 1"[/COLOR], shell[COLOR=#666666]=[/COLOR][COLOR=#007020][B]True[/B][/COLOR]) [COLOR=#303030]1[/COLOR]
Kommentar




Kommentar