Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Cuore 09 Února 2012, 13:30:48
-
Ahoj,
napsal by mi někdo skript pro spuštění serveru Serviio + jeho konzole po bootu systému? Něco jsem polátal a je to kupodivu i funkční, ale problém je, že ani sám nechápu jak to může takhle fungovat ::) . Začal jsem se probírat články http://www.linuxexpres.cz/praxe/serial-o-bashi
no a podle toho jsem si vytvářel první skript. Problém byl ale v tom, že zůstal třeba zamrzlý v polovině, jako by čekal na návratovou hodnotu od Serviio.sh ,která ale nepřijde? Nakonec pomocí pokus omyl jsem se dopracoval k tomuto
#!/bin/sh
echo 'server serviio startuje'
sleep 30; echo 'konzole serviio nabiha, server neaktivni'
~/serviio-0.6.0.1/bin/./serviio.sh & ~/serviio-0.6.0.1/bin/./serviio-console.sh & echo 'server serviio nabehl'
sleep 3 ; echo 'konzole serviio nabehla, server aktivni'
exec
je to funkční ;D ale proti všemu, čemu jsem se zatím dočetl v seriálu o Bashi. Třeba ampersand & by měl sloužit na konci řádku, jako spuštění na pozadí a dva vedle sebe && něco jako logický součin "and" Vždy jsem narazil, že jakmile jsem se dostal po řádek " ~/serviio-0.6.0.1/bin/./serviio.sh" vše zůstalo čekat na něco "?" Echa proběhnou, ale jak se má spustit server či konzole toto proběhne a pak jen čeká, nezávisle zda je zbytek na dalším řádku, nebo na stejném s operandy nebo závorkami. Tenhle nelogický výtvor funguje a netuším proč? což mě štve :)
Takže bych rád poprosil o vysvětlení a napsání nového skriptu, který bude dělat totéž, ale logicky. A ještě, kdyby byla možnost toho echa ho dostat do grafiky ve formě info bubliny.
Dík moc za osvětu
-
nevidím v tom nic divnýho, snad jen že echo na řádku
~/serviio-0.6.0.1/bin/./serviio.sh & ~/serviio-0.6.0.1/bin/./serviio-console.sh & echo 'server serviio nabehl'
je poněkud zbytečně, protože se zobrazí i když server nenaběhne
notifikace takhle
notify-send "tohle je nadpis" "a tady tělo"
více v man notify-send
-
To jsem potřeboval ;) takže notify-send je ta kouzelná formule :D
no divný mi přijde celý řádek
~/serviio-0.6.0.1/bin/./serviio.sh & ~/serviio-0.6.0.1/bin/./serviio-console.sh & echo 'server serviio nabehl'
proč takhle funguje a takhle
~/serviio-0.6.0.1/bin/./serviio.sh
~/serviio-0.6.0.1/bin/./serviio-console.sh
echo 'server serviio nabehl'
už se sekne v prvním řádku a nepokračuje. Předpokládám, že pokud dám to echo na další řádek, tak to zůstane viset zase v tom druhém a k echu se ani nedostane. No a další nejasnosti jsem vyslovil v předchozím příspěvku.
-
Jj, protože zbytek čeká až se provede serviio.sh (čili až skončí). Rozdělit na víc řádků to můžeš prostě takhle
~/serviio-0.6.0.1/bin/serviio.sh & # tečka tam být nemusí
~/serviio-0.6.0.1/bin/serviio-console.sh &
echo 'server serviio nabehl'
ale jak říkám, echo tam nemá smysl