xprintidle funktioniert nicht in Cronjob. Warum?

7

Ich habe lxle (Lubuntu) 12.04 installiert und viel Zeit damit verbracht, nach einer funktionierenden Lösung zu suchen, um den PC nach einer gewissen Zeit des Leerlaufzustands herunterzufahren.

Nachdem ich viele Programme überprüft hatte, die nicht funktionierten, beschloss ich, viel Zeit mit der von cronjob ausgeführten Shell- Skriptlösung zu verbringen

Ich bin hier auf 2 Probleme fest.

  1. xprintidle gibt keine Ergebnisse (leere Zeichenfolge) aus, wenn es von cronjob ausgeführt wird - unabhängig von der Crontab-Datei oder der Shell-Datei in diesen Umgebungen wird nur eine leere Zeichenfolge anstelle der Anzahl der Millisekunden im Leerlauf angegeben.

  2. Zweitens scheint es mir nicht einfach zu sein, mein Skript von crontab zum Herunterfahren als Root auszuführen.

Könnten Sie mir einen Link geben, der dieses Thema erklärt? Ich kenne nur sudo als Benutzer, aber das Skript sollte nicht nach dem Passwort fragen, sondern nur das System herunterfahren.

Michał
quelle
lxle! = lubuntu und vielleicht OT.
DK Bose
Diese Seite Adressen xprintidleAusgabe ubuntuforums.org/showthread.php?t=1069602 und Verwendung askubuntu.com/questions/246455/... zu sudo - Berechtigungen erteilen für die userausführen shutdownBefehl
clement

Antworten:

4

Sie müssen die DISPLAY-Umgebungsvariable festlegen, bevor Sie sie aufrufen. Sie können dies in den virtuellen Konsolen (Strg-Alt-F1) versuchen, da für sie die DISPLAY-Variable nicht festgelegt ist. Sie verhalten sich genauso wie das Cron-Skript.

DISPLAY=:0 xprintidle

oder

export DISPLAY=:0
xprintidle

beides sollte funktionieren.

Diaa Sami
quelle
1
Beachten Sie, dass sich dies ändert, wenn Sie zuerst einen anderen Monitor (größer / besser) anzeigen lassen (und ihn später vom Stromnetz trennen, wenn Sie Ihren Laptop mitnehmen). Ich habe ein paar Stunden damit verbracht zu debuggen, warum mein Skript heute nicht mehr funktioniert ...
LAFK sagt Reinstate Monica