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
Time (s) | Query |
---|---|
0.00013 | SET CHARSET latin2 |
0.00008 | SET NAMES latin2 |
0.00146 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.238.62.119' WHERE u.id=1 |
0.00081 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.238.62.119', 1711633679) |
0.00074 | SELECT * FROM punbb_online WHERE logged<1711633379 |
0.00095 | SELECT topic_id FROM punbb_posts WHERE id=79362 |
0.00112 | SELECT id FROM punbb_posts WHERE topic_id=10167 ORDER BY posted |
0.00070 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=10167 AND t.moved_to IS NULL |
0.00017 | SELECT search_for, replace_with FROM punbb_censoring |
0.00142 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=10167 ORDER BY p.id LIMIT 0,25 |
0.00271 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=10167 |
Total query time: 0.01029 s |