Gibt es eine programmierbare Möglichkeit, um festzustellen, ob der Bildschirm gesperrt ist?


8

Ich habe viele Sachen in meiner Crontab, einschließlich einiger, die mit meinem Bildschirm sprechen. Wenn ich nicht da bin, um zu benachrichtigen, möchte ich nicht, dass es ausgeführt wird.

Gibt es eine Möglichkeit, zu überprüfen, ob der Computer gesperrt ist, damit ich ihn davon abhalten kann, Dinge zu tun, wenn ich nicht an meinem Schreibtisch bin? Oder alternativ andere Dinge nur tun, wenn ich nicht an meinem Schreibtisch bin?

Antworten:


10

Führen Sie diesen Befehl aus:

gnome-screensaver-command -q | grep "is active"

Wenn es eine Ausgabe hat, ist der Bildschirm gesperrt.

In einem Shell-Skript können Sie eine Klausel wie die folgende verwenden:

if (gnome-screensaver-command -q | grep "is active");
then
    ...
fi

(Mein Dank geht an DoR, der diese Befehle ursprünglich hier gepostet hat. )


3
Wenn Sie grepin einem Test verwenden, ist es am besten, diese zu verwenden, grep -qdamit keine Ausgabe an die Konsole erfolgt. Auch die Klammern sind redundant - sie führen dazu, dass eine Unterschale erstellt wird, obwohl dies in diesem Fall nicht erforderlich ist.
Guss

Testen Sie es jetzt, um zu sehen, ob ich darauf aufbauen kann. Es scheint beim ersten Test etwas zerbrechlich und inkonsistent zu sein, aber das könnte nur ich sein.
Dave Jacoby

Beim zweiten Gedanken scheint es zu beginnen, zusammenzukommen. Vielen Dank.
Dave Jacoby

1
Sie sagen nicht "Danke", sondern stimmen zu und markieren es als "akzeptierte Antwort", wenn Sie nett sind, bitte. :)
Benutzer unbekannt

1
@ VarLogRant keine Eile oder irgendetwas, nur um Sie wissen zu lassen, können Sie Ihre Meinung über die akzeptierte Antwort jederzeit ändern, indem Sie einfach erneut auf das grüne Häkchen klicken, um sie rückgängig zu machen
Stefano Palazzo

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.