spouštení aplikací při startu serveru

Založil bighead, 05. 07. 2010, 23:36:26

Předchozí téma - Další téma

bighead

Zdravím,
lámu si hlavu se spouštěním aplikace při spuštění serveru.
v cd /etc/init.d  bootmisc.sh  jsem dal na poslední řádek :
cd /root/mute 
./mute.sh

práva pro mute.sh mám nastavená a při ručním spuštění funguje.
obsah mute.sh :
screen -A -h 1500 -m -d -S mute ./mute_run

děkuji za vaše rady, nejsem v linuxu žádnej odborník :(

pakanek

Máš na prvním řádku skriptů shebang tj. něco jako #!/bin/sh ? Když spustíš mute.sh z bootmisc.sh mimo screen přímo v shellu, tak skript funguje? (nevím co přesně dělá samotný přepínač -d)
Pomník: vzpomněl, připomněl, zapomněl.

bighead

Citace od: pakanek kdy 06. 07. 2010, 06:36:34
Máš na prvním řádku skriptů shebang tj. něco jako #!/bin/sh ? Když spustíš mute.sh z bootmisc.sh mimo screen přímo v shellu, tak skript funguje? (nevím co přesně dělá samotný přepínač -d)

právě když použiji ten shebang, tak to hlásí: /bin/sh^M: bad interpreter: No such file or directory

zkoušel jsem to hledat na googlu, ale moc jsem si tam neporadil

pakanek

hlásí: /bin/sh^M: bad interpreter: No such file or directory

Nemá ten soubor špatné kódování? Opravíš jej pomocí příkazu
dos2unix mute.sh
nebo
vi mute.sh
:set filetype=unix
:wq!

To samé pro ten druhý skript mute_run

Příkaz dos2unix by měl být v balíku tofrodos.
Pomník: vzpomněl, připomněl, zapomněl.

bighead

#4
Citace od: pakanek kdy 06. 07. 2010, 09:26:47
hlásí: /bin/sh^M: bad interpreter: No such file or directory

Nemá ten soubor špatné kódování? Opravíš jej pomocí příkazu
dos2unix mute.sh
nebo
vi mute.sh
:set filetype=unix
:wq!

To samé pro ten druhý skript mute_run

Příkaz dos2unix by měl být v balíku tofrodos.

pomocí vi mute.sh se mi to povedlo udělat, už pod tím jde spouštět, ted to zkusím umístit do bootmisc.sh, díky za pomoc, snad už to ted pojede se spouštěním...

UPDATE: tak jsem to udělal takto : http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian   a funguje

bighead

přijde mi, že ten bootmisc.sh se nespustí při spustění systému, neznáte nějaký jiný druh souboru, kam bych to umístil, aby se to spustilo se systémem ?

pakanek

Pro triviální záležitosti by měl stačit rc.local v adresáři /etc popř. /etc/init.d. Ještě by jsi mohl vytvořit nový skript a nastavit jeho spouštění/zastavování v jednotlivých runlevelech pomocí update-rc.d. Skript rc.local se spouští myslím až na konci startu.
Pomník: vzpomněl, připomněl, zapomněl.

bighead

spouštění už jsem vymyslel, teď bych potřeboval vymyslet automatické nahození aplikace po jejím pádu....

tato aplikace pojmenována auto.sh

#!/bin/sh
SLUZBA=mute
if [ "$(pidof $SLUZBA)" ]
then
echo "Sluzba $SLUZBA na $HOSTNAME bezi s PID $(pidof $SLUZBA)..."
else
echo "Sluzba $SLUZBA na $HOSTNAME nebezi, zkousim ji nastartovat..."

cd /etc/rc2.d
./S09skriptmuze.sh

fi

dále si otevřu crontab -e
a vložím řádek 1.
* * * * * /root/auto.sh> /dev/null

teď by to mělo každou minutu scanovat, zda-li pid je on...

když spustím auto.sh tak aplikace napíše, že je off a nahodí mute.sh...když mute.sh shodím, nic se nestane už nenaběhne

toto jsem využil ze stránky http://www.chovancik.cz/2007/08/18/automaticky-restart-sluzby-pri-jejim-padu-debian-ubuntu-pidof-cron/




pakanek

#8
Připiš za shebang skriptu něco jako
if [ -n "$DEBUG" ]
then
 set -v
  set -x
fi


A v případě problémů spusť skript jako DEBUG=1 ./skript.sh
Pomník: vzpomněl, připomněl, zapomněl.

bighead

Citace od: pakanek kdy 07. 07. 2010, 23:35:33
A v případě problémů spusť skript jako DEBUG=1 ./skript.sh

funguje, díky