Cygwin で cron を実行して notifu を呼び出す

Cygwin で cron を実行して notifu を呼び出す

cygrunsrvWindowsでLinuxスタイルのスケジュール機能を利用するために、CygwinとCronをインストールしました。通知cron ジョブから。

次のコマンドを使用して、cron をサービスとしてインストールしました。

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

すべて正常です。サービスは実行されており、エラーは報告されていません。また、このcron_srvユーザーに必要なすべての権限を付与したので、ユーザー コンテキストの切り替えなどが可能です。

crontab -l私が定義した次の 2 つのジョブが提供されます。

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"

croneventsこれは次のようになります:

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")

..エラーはありません。testcron.txtファイルを作成し、カスタム日付テストで正しく入力しました。ただし、notifuエラーは報告されませんが、メッセージ付きのバルーンは表示されずcronevents、友人の日付テストジョブと同じように実行されているようです。

最後に追加された に含まれているにもかかわらず、プログラムをPATH見つけられるように変数を明示的に設定しましたが、確実にしたかったのです。notifuPATH

興味深いのは、notifuコマンドが Cygwin ターミナルから問題なく実行され、バルーンがメッセージとともにポップアップ表示されるのに、cron ジョブからはトリガーされないことです。

環境変数について何か読んだのですDISPLAYが、それが問題なのでしょうか? もしそうなら、crontab ファイルでその値をどのように設定すればよいのでしょうか? Linux では のようになりますがDISPLAY=:0.0、Windows でこの値を設定する方法がわかりません。

編集

さらに調査を進めていくと、問題は、Windows Vista の時点ではサービスがsession 0 isolationレベル​​でのみ動作し、セキュリティ上の予防措置としてデスクトップと対話できない、またはデスクトップ インスタンスをセキュリティで保護する特別な方法で対話できる、ということにあることがわかりました。

この場合 (私の場合)、このサービスがそのアプリにメッセージを送信し、そのメッセージでバルーンヒントをポップアップできるようにするにはどうしたらよいか、また、サービス自体を変更せずにそれが可能かどうかを教えてください。私はそのサービスの作成者ではないからです。そのため、そのサービスに何らかの権限を与えて、ユーザー空間で動作させる notifu方法はあるでしょうか。logon as

関連情報