Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam wszystkich.
Problem polega na tym że cron dość "dziwnie" się zachowuje i za czorta nie działa tak jak bym tego oczekiwał... mianowicie:
Chcę aby wywoływane było polecenie "wineserver -k" na koncie root'a.
Kiedy do /etc/crontab dopiszę:
* * * * * james wineserver -k
to polecenie działa - winecfg (uruchomiony na koncie "james") zostaje zamknięty po upływie minuty, jednakże kiedy TO SAMO polecenie każę wykonać jako root (czyli wygląd jak wyżej z tym że zamiast "james" jest "root") to nic się nie dzieje (znaczy się - kiedy uruchomię winecfg na koncie roota - polecenie to już go nie zamknie...), z kolei jeżeli takie polecenie wpiszę za pomocą komendy crontab -u james -e to nie zadziała wcale (czyli winecfg nie zostanie zamknięty kiedy będzie włączony na moim koncie, oczywiście z kontem root'a tez próbowałem)...
Ponadto - czy ktoś może mi wyjaśnić czemu cron nie chce odpalać niektórych programów? Przykładowo kiedy wpiszę do /etc/crontab cos takiego:
* * * * * james /usr/bin/xterm
to po minucie... nic się nie stanie, a chyba powinno mi się ukazać okno terminalu prawda?
W kwestii cron'a jestem zielony - więc proszę o wyrozumiałość. Oto pliki /etc/crontab oraz crontaby z /var/spool/cron/crontabs/ dla james i root:
/etc/crontabs:
# that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly # 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) # 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) # 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) # This file was written by KCron. Copyright (c) 1999, Gary Meyer # Although KCron supports most crontab formats, use care when editing. # Note: Lines beginning with "#\" indicates a disabled task. * * * * * james wineserver -k # powyższe działa jeżeli uruchomię winecfg jako james * * * * * root wineserver -k # a to z kolei nie działa (a powinno zabić winecfg uruchomione na koncie root'a)
/var/spool/cron/crontabs/james:
# DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.KvMPHl/crontab installed on Wed Dec 26 01:48:23 2007) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) * * * * * wineserver -k # powyższe nie działa - a powinno zabić winecfg uruchomione na moim koncie - jak to jest ze to samo polecenie # wpisane w dwa rożne miejsca daje tak odmienne rezultaty?
/var/spool/cron/crontabs/root:
# DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.XpFn2m/crontab installed on Wed Dec 26 01:47:38 2007) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) * * * * * wineserver -k # jak wyżej - nie działa :(
Co robię nie tak? Z góry dzięki za wszelkie informacje.
Ostatnio edytowany przez Huk (2007-12-26 02:12:16)
Offline
Środowisko, w którym uruchamiają się polecenia crontaba jest prawie pozbawione zmiennych, więc trzeba się postarać aby ustawić te zmienne w skrypcie lub w /etc/security/pam_env.conf. Np. xterm nie znajduje zmiennej DISPLAY.
Poza tym zwróć uwagę, że w /etc/crontab jest zdefiniowana zmienna PATH, w crontabie roota brak tej zmiennej.
Offline
Heh - dzięki za odpowiedź... tylko, jak już powiedziałem - w sprawie cron'a jestem zielony, również w sprawie ustawień środowiska - co najwyżej od czasu do czasu ustawiałem coś ręcznie za pomocą "export".
Zrobiłem mały skrypt:
#!/bin/sh DISPLAY=":0.0" wineserver -k echo "dziala" >> /home/james/dziala.txt
Ale - jak to było do przewidzenia :( - nie działa (znaczy - działa kiedy uruchamiam go ręcznie, ale już przez cron'a nie), co gorsza dzisiaj przestała działać komenda wineserver -k, ustawiana bezpośrednio w /etc/crontab - wczoraj działała chociaż dla zwykłego usera, dzisiaj wcale. Być może istnieje jakiś poostrzy, program ala cron - który umożliwiałby również wykonywanie programów w określonym czasie?? A może da się jakoś zmusić crona aby korzystał ze standardowych zmiennych systemu?
Offline
to z DISPLAY bylo dla xterma ktory musi wiedziec gdzie odpalic okienko ... dla wineserver podaj pelna sciezke do programu ... ale to tez raczej nie wystarczy - jest tez zmienna WINEPREFIX ktora jest wykozystywana do ustalenia jaki wineserwer ma byc zabity
Offline
Strony: 1