LINUX.ORG.RU

Скрипт не стартует


0

1

Есть вот такой скрипт для смены обоев http://pastebin.com/vwbYxktu добавляю его в кронтаб вот таким образом

1 SHELL=/bin/bash

2 MAILTO=user

3 */1 * * * * /home/karkusha/bin/change_wp.sh

Каждая минута стоит, чтобы убедиться в работоспособности. Но ничего не происходит. Если запускать скрипт вручную из директории, где он лежит -все нормально. В логах пишет : , Mar 11 01:36:01 coach CRON[5078]: (karkusha) CMD (/home/karkusha/bin/change_wp.sh)

В чем дело - решительно не понимаю! Прошу совета.



Последнее исправление: BambarbiyaKirgudu (всего исправлений: 1)

chmod +x /home/karkusha/bin/change_wp.sh
не?
или запускай уж
sh /home/karkusha/bin/change_wp.sh
или
bash /home/karkusha/bin/change_wp.sh

megabaks ★★★★
()

решительно рекомендую почитать про переменную $DISPLAY

anonymous
()

У меня когда-то было по времени дня (ложил в /usr/share/backgrounds), типа такого:

amorpher@xxx ~/Пакеты/misc $ cat '/home/amorpher/Пакеты/misc/bg_cycle.xml'
<background>
<starttime>
<year>2006</year>
<month>10</month>
<day>14</day>
<hour>07</hour>
<minute>00</minute>
<second>00</second>
</starttime>

<static>
<duration>3600.0</duration>
<file>/home/amorpher/Картинки/wallpapers/sunrise.jpg</file>
</static>

<transition type=«overlay»>
<duration>18000.0</duration>
<from>/home/amorpher/Картинки/wallpapers/sunrise.jpg</from>
<to>/home/amorpher/Картинки/wallpapers/day.jpg</to>
</transition>

<static>
<duration>7200.0</duration>
<file>/home/amorpher/Картинки/wallpapers/day.jpg</file>
</static>

<transition type=«overlay»>
<duration>10800.0</duration>
<from>/home/amorpher/Картинки/wallpapers/day.jpg</from>
<to>/home/amorpher/Картинки/wallpapers/sunset.jpg</to>
</transition>

<static>
<duration>3600.0</duration>
<file>/home/amorpher/Картинки/wallpapers/sunset.jpg</file>
</static>

<transition type=«overlay»>
<duration>10800.0</duration>
<from>/home/amorpher/Картинки/wallpapers/sunset.jpg</from>
<to>/home/amorpher/Картинки/wallpapers/night.jpg</to>
</transition>

<static>
<duration>25200.0</duration>
<file>/home/amorpher/Картинки/wallpapers/night.jpg</file>
</static>

<transition type=«overlay»>
<duration>7200.0</duration>
<from>/home/amorpher/Картинки/wallpapers/night.jpg</from>
<to>/home/amorpher/Картинки/wallpapers/sunrise.jpg</to>
</transition>
</background>

amorpher ★★★★★
()
Ответ на: комментарий от amorpher

Megabaks: права кошерные стоят

-rwxr-xr-x 1 karkusha root 350 2011-03-11 00:00 change_wp.sh

Amorpher: сделал так -

*/1 * * * * DISPLAY=:0.0 bash /home/karkusha/bin/change_wp.sh

толку никакого( самое интересное -почему при вызове напрямую все работает?

BambarbiyaKirgudu
() автор топика
Ответ на: комментарий от BambarbiyaKirgudu

>самое интересное -почему при вызове напрямую все работает?
а ты откуда его запускаешь?
из иксового эмулятора терминала или же из tty?

megabaks ★★★★
()
Ответ на: комментарий от amorpher

Ппц. Ненавижу XML в таком применении

anonymous
()

1 SHELL=/bin/bash

2 MAILTO=user

2a DISPLAY=:0.0

3 */1 * * * * /home/karkusha/bin/change_wp.sh

anonymous
()
Ответ на: комментарий от megabaks

действительно...если запустить из tty - ничего не происходит..а есть какие нибудь идеи, как в скрипте явно указать номер дисплея?

BambarbiyaKirgudu
() автор топика
Ответ на: комментарий от BambarbiyaKirgudu

дык
export DISPLAY=:0.0
кстати, кривая копипаста - нахера там номера строк-то в самом коде очутились?

megabaks ★★★★
()
Ответ на: комментарий от amorpher

самому уже интересно в чем дело..привел /etc/crontab к такому виду -

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

DISPLAY=:0.0

эффекта 0...неужели из-за этой переменной из tty тоже не меняются обои?

BambarbiyaKirgudu
() автор топика
Ответ на: комментарий от amorpher

крон запущен)

karkusha@coach:~/bin$ ps aux |grep cron

root 1155 0.0 0.0 2376 904 ? Ss Mar10 0:00 cron

root 7629 0.0 0.1 10448 3672 pts/0 S+ 02:54 0:00 vim /etc/crontab

karkusha 7668 0.0 0.0 3328 872 pts/3 S+ 02:57 0:00 grep --color=auto cron

BambarbiyaKirgudu
() автор топика
Ответ на: комментарий от BambarbiyaKirgudu

ХЗ. Просмотри ещё раз внимательно свои скрипты.

amorpher ★★★★★
()

wp.sh

sh


1 #!/bin/bash

bash



стери вообще в имени ".sh"

amorpher ★★★★★
()
Ответ на: комментарий от amorpher

кривая копипаста. к тому же, если бы в скрипте была ошибка - с вероятностью больше 0 он бы об этом сообщил.

BambarbiyaKirgudu
() автор топика

В общем, для этого cron нафиг не сдался, добавь в автозагрузку:

#!/bin/bash

while :
do
DIR=«$HOME/Картинки/wallpapers»
NUMBER=$RANDOM
TOTAL=0
TOTAL=`ls | wc -l`
ls | sed -n ${NUMBER}p
let «NUMBER %= TOTAL»
CURRENT=0
for f in `ls $DIR`
do
if [ $CURRENT = $NUMBER ]
then
cd «$DIR»
/usr/bin/gconftool-2 -t string -s /desktop/gnome/background/picture_filename «$DIR»/«$(ls | shuf | head -n1)»
break
fi
let «CURRENT += 1»
done
sleep 1m
done

amorpher ★★★★★
()
Ответ на: комментарий от anonymous

vim /etc/crontab здал его...

ТС: crontab -e от пользователя...

crick
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.