Страница 1 из 2
Срабатывает пользовательский крон, но не работает скрипт.
Добавлено: 31 июл 2012, 09:44
Phantom
Сделал я небольшой скрипт по рандомной смене обоев рабочего стола. Занес в крон(естественно под обычным пользователем) с интервалом минута. Он срабатывает, но обои не меняются. Если скрипт просто запустить под тем же пользователем, то обои красиво меняются. Подскажите где запердуха?
Собственно сам скрипт
Код: Выделить всё
#!/bin/sh
PICT=$(ls /home/andrew/Walpapers | shuf -n 1)
gsettings set org.gnome.desktop.background picture-uri "file:///home/andrew/Walpapers/$PICT"
exit 0
Запись по crontab -e
Сислоги
Код: Выделить всё
Jul 31 07:41:01 localhost CRON[2238]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:42:01 localhost CRON[2336]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:43:01 localhost CRON[2389]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:44:01 localhost CRON[2428]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:45:01 localhost CRON[2524]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:46:01 localhost CRON[2643]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:47:01 localhost CRON[2741]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:48:01 localhost CRON[2779]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:49:01 localhost CRON[2859]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:50:01 localhost CRON[2901]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Jul 31 07:51:01 localhost CRON[2965]: (andrew) CMD (/usr/bin/autowalpaper.sh)
Ошибок нигде нет.
По правам
Код: Выделить всё
-rwxr-xr-x 1 andrew andrew 156 2012-07-31 07:57 /usr/bin/autowalpaper.sh
Думал, что рандом затыкается на одной и той же картинке, но вручную он всегда разный....
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 31 июл 2012, 09:54
Infernal Flame
Phantom
а может имеет смысл перекинуть скрипт в хомдир пользователя, а не держать его в /usr/bin ?
была как-то подобная затыка... пока предварительно в скрипте не делал cd в директорию с исполняемым барахлом, которое надо было юзать, он посылал далеко и надолго.
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 31 июл 2012, 10:23
Phantom
Перенес в хоум директорию. Те же грабли.
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 31 июл 2012, 12:18
Infernal Flame
Phantom
а в скрипет еще дописал
?
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 01 авг 2012, 10:11
Phantom
#!/bin/sh
cd ~/
PICT=$(ls Walpapers | shuf -n 1)
gsettings set org.gnome.desktop.background picture-uri "file:///home/andrew/Walpapers/$PICT"
exit 0
Запускается, но не меняет обои. Такое впечатление, чо крон действует из какого то своего окружения, хотя должен из пользовательского...
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 01 авг 2012, 12:41
Infernal Flame
Phantom
может стоит попробовать еще смену пользователя?
а сам скрипт стартовать от рута - тогда пароль не будет спрашивать....
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 01 авг 2012, 13:15
Phantom
Не ну это совсем не выход. Запускать процесс от рута, чтобы прыгать в окружение пользователя и запускать там скрипт, потом же надо из окружения вывалиться иначе в процессах будет su висеть. Как то громоздко и по моему идеологически не верно. Эх.....не хочу ставить графическую свистелку для этого....
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 01 авг 2012, 14:29
Gen1us2k
Запусти скрипт от своего юзера.
*/1 * * * * $user /usr/bin/autowalpaper.sh
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 01 авг 2012, 15:24
Infernal Flame
Gen1us2k
йопт... а я и не обратил внимание, что в кроне юзер-то и не стоит... точно пора идти новые очки заказывать..
Re: Срабатывает пользовательский крон, но не работает скрипт
Добавлено: 01 авг 2012, 17:42
Phantom
Разницы никакой. Только указывает дополнительно пользователя. Я тут кое что нарыл. Попробую чуть погодя. Вот пример.
Код: Выделить всё
Все решилось переносом в пользовательский crontab, Специалисты и так поняли, а другим поясню,
создал файл /usr/home/user/test c тремя строками:
SHELL=/bin/sh
MAILTO=lab
*/1 * * * /home/user/mail/tarifsender.sh
Далее (из под user):
crontab -l - проверяем есть у пользователя свой кронтаб.
crontab -u user /usr/home/user/test - создаем crontab из файла test.
размещаем файл /usr/home/user/tarifsender.sh c единственной строкой:
/bin/echo "Text pisma"|/usr/local/bin/mutt -x -a /tmp/mess.txt -s "tema" user@host.ru
Все работает
Вот у человека получилось решить так.