Ausführen von „cron“ auf Cygwin zum Aufrufen von „notifu“

Ausführen von „cron“ auf Cygwin zum Aufrufen von „notifu“

Ich habe Cygwin mit cygrunsrvund Cron installiert, damit ich die Vorteile der Linux-ähnlichen Planung unter Windows nutzen kann. Ich möchteBenachrichtigungvon einem Cron-Job.

Ich habe cron als Dienst mit dem folgenden Befehl installiert:

cygrunsrv -I cron -d "CYGWIN cron" -u cron_srv -p /usr/sbin/cron -a -n

Alles ist ok, der Dienst läuft und meldet keine Fehler. Außerdem habe ich diesem cron_srvBenutzer alle nötigen Rechte gegeben, damit er Benutzerkontexte wechseln kann etc.

crontab -lgibt diese beiden Jobs, die ich definiert habe:

HOME=/home/<username>
PATH=/usr/local/bin:/usr/bin:/bin:/cygdrive/c/utils/notifu:$PATH
# testing
* * * * * echo "Cron test at $(date +\%k:\%M)" >> ~/testcron.txt 2>&1
* * * * * notifu /p "Balloon Title" /t warn /w /m "event description"

croneventsergibt folgendes:

2014/03/03 13:08:01 [cron_srv] /usr/sbin/cron: PID 2592: (branchito) CMD (echo "Cron test at $(date +%k:%M)" >> ~/testcron.txt 2>&1)
2014/03/03 13:08:01 [cron_srv] /usr/sbin/cron: PID 4076: (branchito) CMD (notifu /p "Balloon Title" /t warn /w /m "event description")

..also keine Fehler. Und ich habe meine testcron.txtDatei erstellt und korrekt mit meinem benutzerdefinierten Datumstest ausgefüllt. Aber notifues erscheint kein Sprechblasen-Fenster mit einer Meldung, obwohl kein Fehler gemeldet wird cronevents, und es scheint genauso gut ausgeführt zu werden wie der Datumstestjob seines Freundes.

Ich habe meine PATHVariable explizit festgelegt, damit sie das Programm finden kann notifu, obwohl es im letzten angehängten enthalten ist PATH, aber ich wollte sicher sein.

Das Interessante daran ist, dass der notifuBefehl ohne Probleme vom Cygwin-Terminal aus ausgeführt wird, ein Ballon mit einer Meldung erscheint, aber vom Cron-Job aus nicht ausgelöst wird.

Ich habe etwas über die DISPLAYUmgebungsvariable gelesen. Könnte das vielleicht ein Problem sein? Wenn ja, wie würde ich ihren Wert in der Crontab-Datei festlegen? Unter Linux ist es wie DISPLAY=:0.0, aber ich weiß nicht, wie ich diesen Wert unter Windows festlegen kann.

BEARBEITEN

Bei weiteren Recherchen wurde mir klar, dass das Problem darin liegt, dass die Dienste ab Windows Vista nur und nur auf session 0 isolationEbene agieren und daher aus Sicherheitsgründen nicht mit dem Desktop interagieren können. Dies ist zwar möglich, jedoch nur über eine spezielle, sichere Desktopinstanz.

Ich möchte, dass mir jemand erklärt, wie es in diesem Fall (meinem Fall) möglich wäre, dass dieser Dienst Nachrichten an diese notifuApp senden kann, nur um einen Popup-Sprech mit dieser Nachricht anzuzeigen, und ob das möglich wäre, ohne den Dienst selbst zu ändern, da ich nicht der Autor davon bin. Gibt es also eine Möglichkeit, diesem Dienst einige logon asBerechtigungen zu erteilen, damit er im Benutzerbereich agiert?

verwandte Informationen