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