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 :(
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)
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
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.
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
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 ?
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.
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/
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
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