Запуск cron на Cygwin для вызова notifu

Запуск cron на Cygwin для вызова notifu

Я установил Cygwin с cygrunsrvCron, чтобы использовать преимущества использования планирования в стиле Linux в Windows. Я хочу позвонитьуведомлениеиз задания cron.

Я установил cron как службу с помощью команды:

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

Все в порядке, служба работает и не сообщает об ошибках. Также я дал этому cron_srvпользователю все необходимые привилегии, чтобы он мог переключать контексты пользователей и т. д.

crontab -lдает эти две работы, которые я определил:

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переменную, чтобы она могла найти notifuпрограмму, даже несмотря на то, что она содержится в последнем добавленном файле PATH, но я хотел быть уверен.

Интересно то, что notifuкоманда запускается без проблем из терминала Cygwin, всплывает сообщение, все в порядке, но из задания cron она не запускается.

Я что-то читал о DISPLAYпеременной окружения, может ли это быть проблемой? Если да, то как мне установить ее значение в файле crontab? В Linux это похоже на DISPLAY=:0.0, но я не знаю, как установить это значение в Windows.

РЕДАКТИРОВАТЬ

Проведя более детальное исследование, я узнал, что проблема заключается в том, что в Windows Vista службы действуют только на одном session 0 isolationуровне, поэтому они не могут взаимодействовать с рабочим столом в качестве меры предосторожности или могут, но каким-то особым образом, обеспечивая безопасность экземпляра рабочего стола.

Я хотел бы, чтобы кто-нибудь сказал мне, как это возможно в этом случае (моем случае), чтобы эта служба могла отправлять сообщение в это notifuприложение, просто выводить всплывающую подсказку с этим сообщением, и возможно ли это без изменения самой службы, потому что я не являюсь ее автором. Так есть ли способ дать этой службе некоторые logon asразрешения, чтобы она действовала в пользовательском пространстве.

Связанный контент