Срабатывает пользовательский крон, но не работает скрипт.

Операционки на базе Unix
Аватара пользователя
Phantom
Эникейщик
Эникейщик
Сообщения: 266
Зарегистрирован: 18 май 2012, 16:34
ОС: ARCH Linux
Откуда: Брянск
Контактная информация:

Срабатывает пользовательский крон, но не работает скрипт.

Сообщение Phantom » 31 июл 2012, 09:44

Сделал я небольшой скрипт по рандомной смене обоев рабочего стола. Занес в крон(естественно под обычным пользователем) с интервалом минута. Он срабатывает, но обои не меняются. Если скрипт просто запустить под тем же пользователем, то обои красиво меняются. Подскажите где запердуха?
Собственно сам скрипт

Код: Выделить всё

#!/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

Код: Выделить всё

*/1 * * * *     /usr/bin/autowalpaper.sh
Сислоги

Код: Выделить всё

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)
Ошибок нигде нет. *WALL BREAK*
По правам

Код: Выделить всё

-rwxr-xr-x 1 andrew andrew 156 2012-07-31 07:57 /usr/bin/autowalpaper.sh
Думал, что рандом затыкается на одной и той же картинке, но вручную он всегда разный....
01010000011010000110000101101110011101000110111101101101
Аватара пользователя
Infernal Flame
Злой Модер
Сообщения: 1796
Зарегистрирован: 03 мар 2010, 11:25
ОС: Centos 7
Контактная информация:

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Infernal Flame » 31 июл 2012, 09:54

Phantom
а может имеет смысл перекинуть скрипт в хомдир пользователя, а не держать его в /usr/bin ?

была как-то подобная затыка... пока предварительно в скрипте не делал cd в директорию с исполняемым барахлом, которое надо было юзать, он посылал далеко и надолго.
Изображение
Изображение
Work: Centos 7 х 'all Servers'
Аватара пользователя
Phantom
Эникейщик
Эникейщик
Сообщения: 266
Зарегистрирован: 18 май 2012, 16:34
ОС: ARCH Linux
Откуда: Брянск
Контактная информация:

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Phantom » 31 июл 2012, 10:23

Перенес в хоум директорию. Те же грабли.
01010000011010000110000101101110011101000110111101101101
Аватара пользователя
Infernal Flame
Злой Модер
Сообщения: 1796
Зарегистрирован: 03 мар 2010, 11:25
ОС: Centos 7
Контактная информация:

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Infernal Flame » 31 июл 2012, 12:18

Phantom
а в скрипет еще дописал ?
Изображение
Изображение
Work: Centos 7 х 'all Servers'
Аватара пользователя
Phantom
Эникейщик
Эникейщик
Сообщения: 266
Зарегистрирован: 18 май 2012, 16:34
ОС: ARCH Linux
Откуда: Брянск
Контактная информация:

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Phantom » 01 авг 2012, 10:11

#!/bin/sh
cd ~/
PICT=$(ls Walpapers | shuf -n 1)
gsettings set org.gnome.desktop.background picture-uri "file:///home/andrew/Walpapers/$PICT"
exit 0
Запускается, но не меняет обои. Такое впечатление, чо крон действует из какого то своего окружения, хотя должен из пользовательского...
01010000011010000110000101101110011101000110111101101101
Аватара пользователя
Infernal Flame
Злой Модер
Сообщения: 1796
Зарегистрирован: 03 мар 2010, 11:25
ОС: Centos 7
Контактная информация:

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Infernal Flame » 01 авг 2012, 12:41

Phantom
может стоит попробовать еще смену пользователя?

Код: Выделить всё

su - username
а сам скрипт стартовать от рута - тогда пароль не будет спрашивать....
Изображение
Изображение
Work: Centos 7 х 'all Servers'
Аватара пользователя
Phantom
Эникейщик
Эникейщик
Сообщения: 266
Зарегистрирован: 18 май 2012, 16:34
ОС: ARCH Linux
Откуда: Брянск
Контактная информация:

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Phantom » 01 авг 2012, 13:15

Не ну это совсем не выход. Запускать процесс от рута, чтобы прыгать в окружение пользователя и запускать там скрипт, потом же надо из окружения вывалиться иначе в процессах будет su висеть. Как то громоздко и по моему идеологически не верно. Эх.....не хочу ставить графическую свистелку для этого....
01010000011010000110000101101110011101000110111101101101
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Gen1us2k » 01 авг 2012, 14:29

Запусти скрипт от своего юзера.

*/1 * * * * $user /usr/bin/autowalpaper.sh
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Infernal Flame
Злой Модер
Сообщения: 1796
Зарегистрирован: 03 мар 2010, 11:25
ОС: Centos 7
Контактная информация:

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Infernal Flame » 01 авг 2012, 15:24

Gen1us2k
йопт... а я и не обратил внимание, что в кроне юзер-то и не стоит... точно пора идти новые очки заказывать..
Изображение
Изображение
Work: Centos 7 х 'all Servers'
Аватара пользователя
Phantom
Эникейщик
Эникейщик
Сообщения: 266
Зарегистрирован: 18 май 2012, 16:34
ОС: ARCH Linux
Откуда: Брянск
Контактная информация:

Re: Срабатывает пользовательский крон, но не работает скрипт

Сообщение Phantom » 01 авг 2012, 17:42

Разницы никакой. Только указывает дополнительно пользователя. Я тут кое что нарыл. Попробую чуть погодя. Вот пример.

Код: Выделить всё

Все решилось переносом в пользовательский 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

Все работает
Вот у человека получилось решить так.
01010000011010000110000101101110011101000110111101101101
Ответить

Вернуться в «Unix»