Fórum Ubuntu CZ/SK
Ostatní => Archiv => Téma založeno: matezz 18 Června 2006, 13:06:27
-
Ahoj,
chci používat program at, ale nějak se mi to nedaří. Příklad: chci, aby at spustil program glxgears v čase teď +1 minuta, zadám at, čas, enter, napíšu glxgears a stisknu ctrl+d. Ohlásí mi číslo úkolu a čas provedení
:~$ at now +1 minutes
warning: commands will be executed using /bin/sh
at> glxgears<EOT>
job 12 at Sun Jun 18 12:54:00 2006
:~$
ale v určený čas se nic nestane. Zkoušel jsem smazat vše v souboru /etc/at.deny, ale nepomohlo to. Nevíte, kde může být problém?
-
vase jmeno se musi objevit v /usr/lib/cron/at.allow
a kdyz davate tak "at now + 1 minute"..jedna minuta nema mnozne cislo..;)
http://kup.me.cz/unix/20_atjob.pdf
-
vím, že 1minuta má jednotný číslo, ale nebyl sem si jistej, jestli by tomu rozuměl, navíc 1 minutes mu nevadí, tam problém neni ;)
a v manuálu man at se o souboru /usr/lib/cron/at.allow nepíše, jsou zmíněny jen soubory /etc/at.allow a /etc/at.deny. V prvním jsem napsanej, ve druhém ne.
Démon atd mi běží, vytvořil jsem zkusmo i /usr/lib/cron/at.allow, ale nepomohlo.
-
to ze nejsi napsany v tom druhem je dobre, to je seznam uzivatelu co nemaji povoleny planovani uloh pomoci at.
zkus si ten priklad co je v tom referatu na rm file.txt..nejdriv si ho samozrejme vytvor ;)
a pote co vytvoris tu ulohu tak si je vypis..tim atq nebo at -l, zda ji system registruje..
po provedeni zkontroluj zda se soubor smazal..
-
chápu ty at.allow a at.deny...
super, test se smazáním textového souboru funguje!
Ale stále nechodí glxgears. Nejde mi o ně, jde mi o stahování torrentů v noci. Stahování torrentu lze spustit z bashe, ale s pomocí at to nefunguje..
Možná at nemá oprávnění takové věci spouštět?
Možná by pomohlo napsat ty příkazy pro stahování do nějakýho souboru, kterej by pak at použil.
-
no spis jde o to, ze ten task je vykonan napozadi tak aby nerusil uzivatele prave pracujicim na systemu, protoze at sam o sobe neni zavisly na prihlaseni ani na pritomnosti uzivatele, ktery job zadal..
pokud jde o stahovani torrentu v noci, tak jako lepsi reseni bych videl si napsat shellovsky skript, ktery spusti potrebny program a provede co je potreba, a prave tento skript bych daval do at..;)
-
Na pozadí určitě stahování neběží, to bych ho musel vidět v seznamu procesů, případně bych viděl na síti, že se něco stahuje, ne?
Pokud by skript fungoval, byla by to bomba. Skripty psát neumim, ale asi to nebude problém, že...
Jak by měl vypadat skript pro příkaz
gnome-btdownload --saveas /home/ /home/xy.torrent
?
A dík za pomoc :)
-
mozna jak rikas, ze to nema potrebna opravneni pro spusteni..
ja jsem primo stahovani pomoci torrentu pres at nikdy neresil..s tim se budes muset bohuzel poprat sam..
jinak mensi uvod do psani .sh skriptu najdes tu..
http://www.root.cz/clanky/programovani-v-bash-shellu/
//edit
neni za co..;)
-
ale stejně je to divný, že to nechce spouštět... Zkoušel sem mu zadat ať spustí třeba mc, taky nic. Zkuste to někdo, jestli vám at spustí třeba ty glxgears.
Dík za link.
napsal jsem skript pro to stahování, který funguje, když ho spustím poklepáním myší, ale nefunguje. když jej má vykonat at :(
$ at -f /home/mates/Desktop/skript.sh now +1 minute
warning: commands will be executed using /bin/sh
job 34 at Sun Jun 18 18:44:00 2006
$
je tam chyba? :)
-
Na ubuntuforums.org jsem získal alternativní řešení:
if sleep 10; then gnome-btdownload --saveas /home/ /home/xy.torrent; fi
po deseti sekundach se spusti zadana cinnost :)
ale je to krkolomny trochu
-
Pokud tedy nikdo nemá trik jak vyzrát na "at",
nemáte tip na program, který by v zadanou dobu uměl jednorázově spouštět programy?
-
Coze, nejde at? S defaultnim nastavenim by nemel byt problem...Mne teda jde, pouzivam to jako budik...
1. Jde Ti demon?
ps aux | grep atd
Pokud ne, tak /etc/init.d/atd start a krom toho by bylo zahodno to pridat do initskriptu...doporucim treba sysv-rc-conf, to je vylozene userfriendly aplikace pro prikazovou radku, kde staci navolit, jake sluzby v jakem runlevelu pobezi.
2. Syntax atu mas dobre...zkus pustit neco jinyho, treba mpg321 ~/Hudba/....../*, at vidis, zda jde...
-
Tak jsem zkousel to glxgears...no to at nespustil. Nevim proc...v lozich ticho po pesine.
Jak jsi spoustel ten mc??? Jestli "mc", tak na to muzes rovnou zapomenout. xterm -e mc nebo tak neco...
-
Je to jasny, je to jednoduchy - nejdou spoustet graficke veci. Ma to logiku, at neni vazan na tu pty (pseudoterminal), odkud to spoustis...zkousel jsem to s abiwordem, a pak mne to trklo. J
-
je zapotřebí tomu nějak říct, kde mu běží Xka, tj.:
$ at now +1 minute
warning: commands will be executed using /bin/sh
at> DISPLAY=:0 glxgears
at>
job 1 at Tue Jun 20 21:28:00 2006
A pak přes příkaz atq mužete kontrolovat, co je naplánované.
-
Je to jasny, je to jednoduchy - nejdou spoustet graficke veci. Ma to logiku, at neni vazan na tu pty (pseudoterminal), odkud to spoustis...zkousel jsem to s abiwordem, a pak mne to trklo. J
Jdou. Viz můj předchozí příspěvek. Jen je zapotřebí tomu programu nastavit správný environment, který mu říká ve kterých Xkách má onen program pustit.
Je to totiž tak, že atd daemon nedědí aktuální environment prostředí, ale vytváří novou session pro uživatele pro kterého spouští naplánovanou úlohu.
Je to stejné jako když máte puštěné Xka a chcete do nich něco spustit z konzole, taky musíte nastavit proměnnou DISPLAY (většinou na ":0" ), aby takový program šel spustit.
-
No, to se to pohlo, děkuju pánové!!! Bomba...
-
Je to jasny, je to jednoduchy - nejdou spoustet graficke veci. Ma to logiku, at neni vazan na tu pty (pseudoterminal), odkud to spoustis...zkousel jsem to s abiwordem, a pak mne to trklo. J
Jdou. Viz můj předchozí příspěvek. Jen je zapotřebí tomu programu nastavit správný environment, který mu říká ve kterých Xkách má onen program pustit.
Je to totiž tak, že atd daemon nedědí aktuální environment prostředí, ale vytváří novou session pro uživatele pro kterého spouští naplánovanou úlohu.
Je to stejné jako když máte puštěné Xka a chcete do nich něco spustit z konzole, taky musíte nastavit proměnnou DISPLAY (většinou na ":0" ), aby takový program šel spustit.
Jo, uz jsem to cetl :) Diky za info! J