Abschaltung bei Nichtgebrauch während einer bestimmten Zeit

Abschaltung bei Nichtgebrauch während einer bestimmten Zeit

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 poweroffoder shutdownals 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 $PATHund 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 echoAnweisungen natürlich auch entfernen. Ich habe das hier nur schnell als Beispiel zusammengewürfelt.

Das Wesentliche: Wenn ein Benutzer yesden Returncode drückt, wird 0der Computer heruntergefahren. Wenn ein Benutzer noden Returncode drückt 1, wird der Computer heruntergefahren.nichtHerunterfahren. (Bearbeiten:) Wenn innerhalb von timeoutSekunden ( 10in diesem Fall) kein Benutzer eine Taste drückt, xmessagewird das Programm beendet 0und der Computer wird heruntergefahren.

Bei der Ausführung erzeugt das Skript dieses kleine Dialogfeld:

https://s22.postimg.org/irl97w835/xmessage.png

Ich bin sicher, dass das zenitygroßartig ist, aber für eine einfache Aufgabe wie diese xmessageist 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 xdialogdas 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.

verwandte Informationen