Autor Téma: spouštení aplikací při startu serveru  (Přečteno 901 krát)

Offline bighead

  • Nováček
  • *
  • Příspěvků: 6
  • Karma: 0
    • Zobrazit profil
spouštení aplikací při startu serveru
« kdy: 05. 07. 2010, 22:36:26 »
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 :(

Offline pakanek

  • Začátečník
  • **
  • Příspěvků: 30
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #1 kdy: 06. 07. 2010, 05: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)
Pomník: vzpomněl, připomněl, zapomněl.

Offline bighead

  • Nováček
  • *
  • Příspěvků: 6
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #2 kdy: 06. 07. 2010, 07:40:40 »
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

Offline pakanek

  • Začátečník
  • **
  • Příspěvků: 30
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #3 kdy: 06. 07. 2010, 08: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.
Pomník: vzpomněl, připomněl, zapomněl.

Offline bighead

  • Nováček
  • *
  • Příspěvků: 6
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #4 kdy: 06. 07. 2010, 09:05:46 »
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
« Poslední změna: 06. 07. 2010, 10:37:36 od bighead »

Offline bighead

  • Nováček
  • *
  • Příspěvků: 6
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #5 kdy: 06. 07. 2010, 10:06:58 »
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 ?

Offline pakanek

  • Začátečník
  • **
  • Příspěvků: 30
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #6 kdy: 06. 07. 2010, 10:49:59 »
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.

Offline bighead

  • Nováček
  • *
  • Příspěvků: 6
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #7 kdy: 07. 07. 2010, 16:36:30 »
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/




Offline pakanek

  • Začátečník
  • **
  • Příspěvků: 30
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #8 kdy: 07. 07. 2010, 22:35:33 »
Připiš za shebang skriptu něco jako
Kód: [Vybrat]
if [ -n "$DEBUG" ]
then
  set -v
  set -x
fi

A v případě problémů spusť skript jako DEBUG=1 ./skript.sh
« Poslední změna: 07. 07. 2010, 22:37:37 od pakanek »
Pomník: vzpomněl, připomněl, zapomněl.

Offline bighead

  • Nováček
  • *
  • Příspěvků: 6
  • Karma: 0
    • Zobrazit profil
Re: spouštení aplikací při startu serveru
« Odpověď #9 kdy: 08. 07. 2010, 10:15:34 »
A v případě problémů spusť skript jako DEBUG=1 ./skript.sh

funguje, díky