Приветствую!
Прошу помощи по следующему вопросу. Есть необходимость запускать по расписанию некую терминальную сессию - rdesktop server. Руками из терминала - без проблем, тут же пишу crontab -e: 00 09 * * * export DISPLAY=:0.0 && rdesktop server и решительно ничего не происходит... Пробовал и под root' ом - безрезультатно. В логе имеем: /USR/SBIN/CRON[9396]: (CRON) error (grandchild #9398 failed with exit status 1)
Как же быть?
Терминальная сессия должна быть запущена, потому что в ней регулярно выполняется gui-приложение, и выполняется оно только в активной сессии...
ммм... напиши скрипт-однострочник, который запускает терминальную сессию.
помести его в /usr/sbin, сделай на него chmod +x
проверь, что он запускается просто по имени:
[console]# sript_name[/console]
и вот этот скрипт уже засунь в cron
P.S. Пока писал пост уже w03zd8rc запостил мысль :D
Все выполнил, согласно рекомендаций w03zd8rc... Доходит дело до запуска - тишина. В логе пусто. Попробовал под рутом - тоже никакого эффекта.
Сам скрипт запускается нормально... У меня такое подозрение, что с кроном что-то не то... Как проверить?
iurum, пару примеров для проверки, только так как я показал, несколько не правильно:
под рутом:
text
$ nano /etc/crontab
# каждые 20 минут
*/30 * * * * root echo "Hello! каждые 20 минут" >> /tmp/crontest
# каждый день в 7:30
30 6 * * * root echo "Hello! каждый день в 7:30" >> /tmp/crontest
2) файл /var/log/term не только должен существовать, но и права у него должны быть 0666
3) редактируйте юзерским crontab -e
4) добавте в скрипт export HOME=/home/user (что там у вас?)
export PATH=.... пути ко ВСЕМ вашим программам(командам) что вы юзаете. Через :
(совет можете скопипастить вывод exho $PATH, если лениво)
1. Создаю файл скрипта: /usr/sbin/term с содержанием:
text
#!/bin/sh
#/usr/sbin/term
export HOME=/home/user # здесь имя пользователя, по этому пункту - непонятно его назначение..
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/sbin:/
export DISPLAY=:0.0
rdesktop server
с правами 755. Пробую запуск вручную - работает и от root и от user
2. Создаю log /var/log/term c правами 666
3. Запускаю crontab -e от user, прописываю:
text
0-59 * * * * /usr/sbin/term 2>&1 >> /var/log/term
- НИЧЕГО НЕ ПРОИСХОДИТ!
4. Проверяю работу cron: crontab -e от user
text
0-59 * * * * echo "TEST!!!" >> /var/log/term
все работает, в лог пишет!
Если запускать crontab от root'a - все тоже самое... :(
пустая строка в конце файла, когда редактируете crontab есть?
ЗЫЖ должно работать - с виду всё верно... в /var/log/{messages,syslog} тоже ничего?
в почте может быть? (почту можно почитать обычно командой mail, от рута рутову, от юзера юзерскую)