Automatisches Herunterfahren per Script

Head

Active member
Themenstarter
Registriert
16 Okt. 2008
Beiträge
1.099
Hi..

Ich hänge eigentlich an einem ganz kleinen problem, komme aber nicht dahinter, ob ich was falsch mache, oder ob es gewollt ist.

Ihc möchte mir einen klitzekleines Script basteln, welches VLC startet, vlc://quit in die playlist einfügt und nach beenden von VLC den rechner herunterfährt.
Sinn und Zweck der Angelegenheit ist der, das ich den laptop hin und wieder mit in schlafzimmer nehme und wenn ich eingepennt bin er automatisch ausgehen soll.

So, VLC startet, shutdown befehlt ist soweit auch klar, nur habe ich das problem, das Sudo (für den Shutdown-Befehl) ohne Passwort auskommen muss.
Zwar gibt es auch die Möglichkeit per SUID, aber die ist nicht so hübsch.

Mein Lösungsansatz: Die Passwortabfrage für den Shutdownbefehl herausnehmen...

Visudo in die Hand genommen und folgendes eingefügt:

Code:
USER ALL=NOPASSWD: /sbin/shutdown

User habe ich durch meinen Benutzer getauscht, ist klar...
Leider funktioniert es nicht, denn er fragt nach wie vor nach dem Passwort. Hab ich mich zuvor per Passwort authentifiziert, ist alles paletti und er führt den Sudo-Befehl auch später aus.

Woran scheitert es?! Was mache ich verkehrt?

Grüße und schon mal meinen Dank!

Head
 
Tut es nicht auch eine (von VLC unabhängige) Lösung, einen shutdown nach einer gewissen Zeit zu erzwingen? Entweder durch Kommandozeile, oder per Gnome Erweiterung
https://extensions.gnome.org/extension/183/shutdown-timer/
Abgesehen davon kann man in den Energieeinstellungen regeln, dass das Gerät nach einer (definierbaren) Weile in die Bereitschaft geht.
 
Jein, also _meine_ Energieeinstellungen funktionieren nicht, sobald VLC aktiv ist. Davon ist auch Zuklappen betroffen...Um ehrlich zu sein habe ich aber auch noch nicht in den VLC-Optionen nach einer Lösung dafür gesucht.
Und nein, Zeit ist mir zu "umständlich", denn er soll runterfahren, wenn die Serien-Folge oder Film zuende ist (+ 1-2 Minuten Schonfrist per Shutdown-Option).

Ich habe unter Windows in meinem GomPlayer die Option, das der Rechner am Ende der Playlist herunterfahren soll und dieses möchte ich gern auch unter Linux so haben.
Bitte nicht übel nehmen, aber bitte kein Drumherumgebastel ;)

Aber danke schon mal für die Ansätze...
 
Hallo Head,
leider hast du nichts zur deiner Linux-Distribution geschrieben.
Als Beispiel für nen aktuelles Ubuntu reicht ein
Code:
gnome-session-quit --power-off
und es öffnet sich ein shutdown-Dialog der den Rechner nach 60sec herunterfährt (oder du das ganze abbrichst).

Und diesen Befehl dann einfach nachdem vlc beendet wurde ausführen siehe http://wiki.videolan.org/How_to_shut_down_computer#Linux

Vielleicht konnte ich weiterhelfen, vielleicht auch nicht ;)

mfg borsdel
 
Genau das ist die Seite, die mich ans Script geführt hat @VLC-How-To
Leider benötligt man root-Rechte für den Shutdownbefehl, daher ist der so wie er ist nicht praktikabel.

Mein Distri ist Crunchbang (Debian Stable, OpenBox..)

Vielleicht auch ein guter ansatz, den Logoff/Shutdown-Mechanismus von OpenBox anzuzapfen, muss dann mal schauen, wo ich das finde.

Grüße und Dank
 
Openbox ist ja nur der Fenstermanager und läuft ohne root-Rechte, kann also den Rechner nicht herunterfahren.
Deswegen geht der Befehl an den Login-Manager, damit dieser das Herunterfahren regelt - und dieser läuft hingegen mit root-Rechten.
Bei dir könnte das GDM sein und dem teilst du das via
Code:
gdm-control --shutdown && openbox --exit
mit.
mfg borsdel
 
Es sollte doch gehen, ein zweizeiliges Shell-Skript zu schreiben, welches erst VLC startet, und nach Ablauf dessen den shutdown macht. Das Skript mit root-Rechten ausführen.
 
@dirkk
Sorry, das so sagen zu müssen, aber das ist doch die denkbar ungünstigste Variante ;) Damit wird VLC gleich auch noch mit root-Rechten ausgeführt...
 
Ist das so schlimm, wenn man offline ist? Ein Video von irgendeiner zwielichtigen Seite aus dem Internet sollte es natürlich nicht sein.
 
thx borsdel, werde ich nachher mal antesten

@dirkk: so dachte ich auch...aber vlc startet nicht mit rootrechten, denn es warnt nur und fordert einen auf als User VLC zu starten. Das wars....

Trotz der interessanten Lösungsansätze hätte ich trotzdem gern gewusst, warum mein Lösungsansatz mit Visudo nicht funktioniert?! Falls wer da Ahnung hat und erkennt, was da schief läuft, bin ich ebenfalls dankbar.
Das Prinzip, das Prinzip... ;)

Grüße
 
Ich habs immer wie folgt gemacht:

In einem Terminal mplayer gestartet im anderen, mit Root-Rechten hab ich sleep 7200; poweroff gemacht.

Hat den Vorteil:

Geht ausversehen VLC aus, weil du dagegen kommst, fährt der PC nicht runter. Zudem kannst du, wenn du nach dem Film merkst oh ich muss noch was machen, den Shutdown abbrechen indem du einfach nen paar mal STRG-C drückst.
 
so dachte ich auch...aber vlc startet nicht mit rootrechten, denn es warnt nur und fordert einen auf als User VLC zu starten. Das wars....
Es geht z. B. mit
Code:
sudo -u BENUTZER vlc
Ich weiss nicht, ob es die Möglichkeit gibt, ein Kommando als root auszuführen, aber nur mit den Rechten des Users.
 
@Head
die Variante mit "sudo shutdown -h now" sollte, wenn sudo sonst korrekt funktioniert, klappen.

Vorgehensweise:
Mit
Code:
sudo visudo
wird das sudoers files bearbeitet und Änderung auch sofort angewendet

Darin fügst du ein
Code:
deinnutzername ALL = NOPASSWD: /sbin/shutdown
und fertig :)
 
@Head
...

Darin fügst du ein
Code:
deinnutzername ALL = NOPASSWD: /sbin/shutdown
und fertig :)

Richtig, so mein eigentlicher Ansatz, womit wir wieder beim urprünglichen Problem wären: es funktioniert nicht!
Er fragt trotzdem nach einem Passwort.. ;)

@dirkk: richtig, eher

Code:
vlc vlc://quit && shutdown -h -t 120 now

VLC ist noch genauer auszuklügeln, denn der quit-Befehl soll in die playlist. So wird VLC geladen, der befehl schon mal in die playlist gepackt und ein video kann noch hinzugefüpgt werden. Am ende wird der quitbefehl für vlöx ausgefüht und der shutdown-befehl aufgerufen. Soweit meine Planung...

Grüße
 
Zuletzt bearbeitet:
korrekt sollte es vielleicht so sein
Code:
#! /bin/sh
vlc "$1" vlc://quit && sudo shutdown -k -h 120

als datei unter /usr/bin/ als vlcshutdown ablegen, dann chmod +x auf die Datei.

Aufruf dann mit "vlcshutdown datei.video". Im Skript wird datei.video als Parameter $1 übergeben, gefolgt vom playlist-Element vlc://quit. Nach Beendigung erfolgt der Shutdown (-h=halt) nach 120sec (das "now" muss dann weg). Das -k ist ein Testaufruf, muss auch weg.
Auf alle Fälle muss für diese Variante das Sudo funktionieren. Wenn nicht dann, eben über den Aufruf an den Login-Manager.

mfg borsdel
 
Ah, siehste, somit ist VLC schon mal ausgeklügelt, danke schon mal. Und stimmt, 'now' muss natürlich weg ;)
Aber haste nicht das -t vergessen?!

sudo shutdown -h -t 120

Bleibt nun nur noch die Sudo-Problematik!

Grüße
 
man shutdown
Code:
SYNOPSIS
shutdown [OPTION]...  TIME [MESSAGE]

Nicht immer an Windows denken ;)

Wegen Sudo: Ansonsten kannst du sudo ganz normal benutzen, gibt's keine Probleme?

Hast du nun einen Loginmanager zu laufen? Wie heißt der?
Und "gnome-session-quit --power-off"
oder
"gdm-control --shutdown && openbox --exit"
schonmal probiert?
 
Zuletzt bearbeitet:
Hmm, interessant! Ich kenne es nur mit -t (und nein, nicht nur unter Windows ;) )

http://unixhelp.ed.ac.uk/CGI/man-cgi?shutdown+8

So auch man shutdown auf meinem System, welches ein '-t [sec]' als Option angibt. Ich hatte Time als Uhrzeit angesehen.

Edit: sorry, ganz vergessen.
Ja, Sudo kann ich ansonsten ganz normal nutzen. Keinerlei auffälligkeiten.
Wegen der Login-Manager-Geschichte muss ich nachher mal genauer schauen, habe da aber aktuell leider kein Auge für.

Grüße
 
Zuletzt bearbeitet:
Hehe, so genau hatte ich das noch gar nicht betrachet :facepalm:
Du hast dir übrigens eine ungünstige man-Page ausm Netz gesucht, aber wenn deine man-page das auch so sagt...

Jedenfalls bei mir ist die obligatorische Zeitangabe entweder in n Minuten *hättest lange gewartet, lol* oder zu einer bestimmten Uhrzeit hh:mm.
Wieder was gelernt und vor allem sollte ich mir die Meldungen öfter durchlesen...

mfg borsdel
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben