3

Я установил Cygwin с cygrunsrv и Cron, чтобы использовать преимущества планирования в стиле Linux в Windows. Я хочу вызвать notifu из 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 разрешений, чтобы он действовал в пространстве пользователя.

0