Ich habe einen „Media Center“-PC, den ich manchmal vergesse, nachts herunterzufahren. Wenn ich daran denke, melde ich mich normalerweise per Fernzugriff bei meinem „Media Center“-PC an und fahre ihn herunter, aber in den meisten Nächten vergesse ich es und der PC läuft die ganze Nacht (und auch den nächsten Tag).
Gibt es eine Möglichkeit, den PC über ein Dialogfeld (z. B. "Do you want to shutdown?" [Yes] [No]
) herunterzufahren? Ich möchte ein Dialogfeld, weil wir manchmal spät abends Filme anschauen und ich den PC nicht willkürlich herunterfahren möchte.
Ich kann einen Cron-Job ausführen, der um 1 Uhr morgens ein Skript ausführt, aber ich weiß nicht, wie ich es ausführen soll poweroff
oder shutdown
als Standardbenutzer. Irgendwelche Hilfe? Ich verwende Linux Mint 17.3 (Ubuntu 14.04).
Antwort1
Gibt es eine Möglichkeit, den PC über ein Dialogfeld (z. B.
"Do you want to shutdown?" [Yes] [No]
) herunterzufahren?
Ich glaube, der einfachste Weg, dies zu tun, ist über xmessage
. So etwas wie das hier:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DISPLAY=:0.0
xmessage -timeout 10 "Shutdown computer?" -buttons yes:0,no:1
case $? in
0)
echo "Shutting down..."
#systemctl poweroff
;;
1)
echo "Ok."
;;
*)
echo "Mystic error!"
;;
esac
Ich habe die Variablen $PATH
und hinzugefügt $DISPLAY
, damit sie verwendet werden können von cron
(mehr dazuHier). Und natürlich, wenn SiewollenUm Ihren Computer herunterzufahren, müssen Sie diese Zeile auskommentieren. Sie können die echo
Anweisungen natürlich auch entfernen. Ich habe das hier nur schnell als Beispiel zusammengewürfelt.
Das Wesentliche: Wenn ein Benutzer yes
den Returncode drückt, wird 0
der Computer heruntergefahren. Wenn ein Benutzer no
den Returncode drückt 1
, wird der Computer heruntergefahren.nichtHerunterfahren. (Bearbeiten:) Wenn innerhalb von timeout
Sekunden ( 10
in diesem Fall) kein Benutzer eine Taste drückt, xmessage
wird das Programm beendet 0
und der Computer wird heruntergefahren.
Bei der Ausführung erzeugt das Skript dieses kleine Dialogfeld:
Ich bin sicher, dass das zenity
großartig ist, aber für eine einfache Aufgabe wie diese xmessage
ist es meiner Meinung nach wahrscheinlich am einfachsten.
Antwort2
Zu viele tatsächliche Fragen in einer Frage. Stellen Sie das nächste Mal separate Fragen. Das von Ihnen beschriebene Problem sollte durch die Videoplayer-Option „Suspendieren verhindern“ oder „Bildschirmschoner deaktivieren“ gelöst werden. VLC hat diese Option irgendwo in den Einstellungen. Allerdings berichten Leute, dass sie manchmal nicht funktioniert.
Um Dialoge aus einem Bash-Skript anzuzeigen, verwenden Sie xdialog
das Dienstprogramm. Es funktioniert jedoch nicht einfach, wenn es von einer externen Benutzersitzung ausgeführt wird, z. B. von crontab. Sie müssen zuerst die X-Server-Sicherheit deaktivieren.
Um poweroff als Standardbenutzer auszuführen, führen Sie es über systemd aus
systemctl poweroff
.