Jak spustit program ve skriptu

Dan Lukes dan at obluda.cz
Thu May 27 16:48:21 CEST 2010


On 05/27/10 14:09, Nádhera Roman:
> Mám skript, který když spustím ručně, tj. z příkazového řádku, tak
> normálně funguje.
> Když jej však nechám spustit pomocí cron, tak se neprovede a do lokální
> pošty přibude zpráva, že nebylo možno  nalézt programy healthdc a sendEmail.
> Oba programy jsou právě použity v onon skriptu.
> Jsou zadány včetně plné cesty.

Coz naznacuje, ze provlem NENI v rozdilnem nastaveni v PATH...

Mohl by to byt problem prav (pokud se ruzne spousteji pod jinym 
uzivatelem nez z CRONu) - k nim nebo ke knihovnam, ktere pouzivaji.

A jeste par jinych spise nepravdepodobnych okrajovych moznosti.

Zkus to scriptu napsat pred prvni prikaz 'set +x' pripadne zkusit 
programy spustit jako tentyz uzivatel, ktery je spousti z CRONu

> Ten skript vypadá takto:
>
> #!/bin/sh
> #
>
> /usr/local/bin/healthdc -H 127.0.0.1>  health.html
>
> /usr/local/bin/sendEmail -t xxxxxxx at xxxxxx.cz   \
>            -u "toaster computer health"         \
>            -m "Temperature in the box"         \
>            -s 192.168.1.1                     \
>            -f xxxxx.xxxxxxx at xxxxxx.cz        \
>            -a health.html
>
>
> Koukal jsem se na jiné skripty například v /etc/rc.d


A to zase pozor - scripty v rc.d maji dost specialni vlastnosti - jak 
kvuli tomu, ze jsou vlastne spis konfiguracemi, zatimco vlastni 
(rozsahly) vykonny kod v nich vubec neni (je includovan) tak kvuli 
mechanismu jejich spousteni.

Kdyz se podivas, rekneme, zrovna na rc.d/cron, tak v nem nenajdes jediny 
prikaz, ktery by cikoliv (a tedy ani cron) spoustel.

Porovnavat tvuj "obycejny" script s tim, co lze nalezt v rc.d spis k 
objevu ve veci hledani tveho problemu nepovede.

Mimochodem, ty vis v jakem adresari cron "stoji", kdyz tvuj script 
spousti ? Ja, ze tam mas to presmerovani do health.html bez cesty do 
current adresare ?


					Dan



More information about the Users-l mailing list