Skript v Cronu běží jen pod rootem

norwi

Skript v Cronu běží jen pod rootem
« kdy: 21. 01. 2013, 07:08:21 »
Zdravím

Mám prosbu už fakt nevim.

mám skript, který KILLne dva procesy a pak spouští "rmiregistr" (java) a JAVovský skript.

Pokud skript pustim rucne, vse pod userem vse probehne OK.
Pokud ho pustim pod CRONe tak, skript v danem case jen KILLne procesy a nic nespusti.
Kdyz skript pustim pod rootem CRONa tak vse nabehne.

Prava jsme pridelil a porad nic.
Vypis logu neříka zadnou chybu.
OS je CENTOS

Muj skript
Kód: [Vybrat]
#kill process rmregistry
ps -ef | grep rmiregistry |grep user1 | grep -v grep | awk '{print $2}' | xargs kill -9

#kill proces java
ps -ef | grep /usr/java/jdk1 |grep user1 | grep -v grep | awk '{print $2}' | xargs kill -9
sleep 10

cd /srv/vipilot/pluto
./skript1.sh
./skript1

Díky za jakýkoli HINT.
« Poslední změna: 21. 01. 2013, 10:53:33 od Petr Krčmář »


mon

Re:problem s cronem
« Odpověď #1 kdy: 21. 01. 2013, 08:01:25 »
prava na skript? moze ich pustat user ktory to ma v crone?

Mareg

Re:problem s cronem
« Odpověď #2 kdy: 21. 01. 2013, 09:41:45 »
Kód: [Vybrat]
cd /srv/vipilot/pluto
./skript1.sh
./skript1

A co tam misto této konstrukce raději zadat absolutní cestu?
/.../.../skript1.sh

David

Re:problem s cronem
« Odpověď #3 kdy: 21. 01. 2013, 09:56:13 »
Zkusil bych to zjednodušit. Pustil bych ručně třeba sleep 10000, místo těch ps bych zkusil dát killall sleep a následně to cd a spuštění scriptu...  a do toho scriptu bych dal třeba jenom echo test > /tmp/test, pustil pomocí CRONu a zkusil bych se podívat jestli se vytvořil /tmp/test...

Přijde mi, že to co tu uvádíš by mělo fungovat, jestli jsou práva OK a chmod +x


norwi

Re:problem s cronem
« Odpověď #4 kdy: 22. 01. 2013, 06:53:51 »
prava na skript? moze ich pustat user ktory to ma v crone?

pokud skript spustim manualne pod danym uzivatelem (su user) tak probehne
navic jsem procesum prideli prava pres chown user:group ./skript1.sh


norwi

Re:problem s cronem
« Odpověď #5 kdy: 22. 01. 2013, 06:56:19 »
Kód: [Vybrat]
cd /srv/vipilot/pluto
./skript1.sh
./skript1

A co tam misto této konstrukce raději zadat absolutní cestu?
/.../.../skript1.sh

Absolutní cesta není možná, protože skript1.sh ma v sobe

cd directory a pak cd ..

Honza Vrana

Re:Skript v Cronu běží jen pod rootem
« Odpověď #6 kdy: 22. 01. 2013, 07:40:25 »
Krasny den,

z cronem byva problem ze nema nastavene promene prostredi, povetsinou se nedostane k PATH.
Podle kodu bych si tipnul ze  ./skript1.sh nebo ./skript1 ma uvnitr nejaky kod kteremu chybí nějaká
proměná prostředí, kterou muze mít root nastavenu.

V kazdém případě bych si vypisem nějaké hodnoty ověřil zda zda se ./skript1.sh a ./skript1 spustí. Já si myslím že jo a že havaruje až kod uvnitř.

a pomoci /usr/bin/env  bych si vypsal promene prostredi u user na primo, user cron a root cron a pak je porovnal a rozdil musim vidět.

Honza Vrána


Petr Jeníček

Re:Skript v Cronu běží jen pod rootem
« Odpověď #7 kdy: 22. 01. 2013, 08:54:41 »
Jeste overte, zda dany uzivatel vubec smi spoustet neco cronem. Zkuste spustit cronem nejaky uplne jednoduchy prikaz treba /bin/echo "test" > /tmp/test.txt . Kdyz nepujde, podivejte se do log souboru cron, messages a secure v adresari /var/log/ zda tam nebude nejaka zprava. Bezpecnostni omezeni nebo zakazy spousteni uloh cronem mohou byt v souborech /etc/cron.allow, /etc/cron.deny, /etc/security/access.conf, /etc/pam.d/crond a v nastaveni selinuxu.

norwi

Re:Skript v Cronu běží jen pod rootem
« Odpověď #8 kdy: 22. 01. 2013, 20:52:44 »
jenze kill funguje, takze user musi myt prava aby neco spustil

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Skript v Cronu běží jen pod rootem
« Odpověď #9 kdy: 22. 01. 2013, 21:33:30 »
jenze kill funguje, takze user musi myt prava aby neco spustil

V tom je mozna problem. Bezet by to melo i bez myti prav. Co kdybyste za to cd zkusil pridat pwd >>/tmp/skript.log ? Abyste vedel, kde po tom cd vlastne jste a zdali je to tam, kde ocekavate. Mohl byste to pridat i na zacatek skript1.sh a skript1, abyste videl, jestli to drzi. A neskodilo by si tam vzdy nechat echnout nejakou znacku, aby bylo videt, kdo co psal.

norwi

Re:Skript v Cronu běží jen pod rootem
« Odpověď #10 kdy: 22. 01. 2013, 23:41:17 »
urctite pridam
zatim vidim, ze se nekoretne uzvavre komunikce na portech
netsat ukakuzuje ze komunikce porad probíha, druhy server porad vysila dotazy

nevite jak se korektne ukoncuje komunikace

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Skript v Cronu běží jen pod rootem
« Odpověď #11 kdy: 23. 01. 2013, 00:22:29 »
Hm, to je blbe. Ale asi to ma neco do cineni s tim, ze pouzivate kill -9. Zkuste kill -15, pak si overte, ze to skoncilo, treba v nejakem cyklu o treba peti krocich s dvouvterinovym nebo nejak inteligentne navolenym sleepem a kdyz to nevyjde, pustte na to kill -9 a pak budete muset pockat, az ty porty vyhniji, abyste mohl aplikaci znovu spustit.

O problemu s visicimi porty se tu nedavno mluvilo tady: http://forum.root.cz/index.php?topic=5510.0