Tu přílohu si stáhni, rozbal a obzah ulož do tvé složky serviio (tu musíš mít ve svém domácím adresáři a jen s názvem serviio). Scriptu
"start_serviio.sh"
a spouštěči
"serviio.desktop"
nastav spustitelný příznak, jako si to dělal u
serviio.sh a serviio-console.sh
ikona a logo jsou jen obrázky a serviio.desktop je spouštěč, který si můžeš umístit do boční lišty pro snadné spouštění. Akorát mu pod vlastnostmi, v kolonce příkaz nastav absolutní cestu k start_serviio.sh. Pokud je tvé uživatelské jméno thomas23, tak to bude
/home/thomas23/serviio/start_serviio.sh
Obrázek=ikona.png
Pokud budeš chtít serviio spouštět automaticky po zapnutí PC (asi zbytečnost) tak klikni na vyhledávání v Dash a napiš
aplikace spouštěné při přihlášení
a tam si přidej nový, kde pod příkaz dej cestu k start_serviio.sh takže
/home/thomas23/serviio/start_serviio.sh
kód start_serviio.sh:
#!/bin/sh
echo 'server serviio startuje'
notify-send -i ~/serviio/logoserviio.png 'vyčkávám na spuštění serveru' '...testuji'
sleep 5;
~/serviio/bin/serviio.sh &
PID1=$!;
seconds=2
echo -n "vyčkávám na spuštění serveru"
sleep 1
while [ $seconds -ge 0 ]
do
sleep 1
echo -en "\r`tput el`$seconds"
seconds=$(expr $seconds - 1 )
done
ps -e | cut -c -5 | grep $PID1 > $PWD/serviio/ps.log
PID2="< $PWD/serviio/ps.log";
PID2=$(cat $PWD/serviio/ps.log);
rm $PWD/serviio/ps.log
echo "PID1" $PID1
echo "PID2" $PID2
[ $PID1 = $PID2 ] || {
echo "server serviio nenaběhl"
notify-send -i ~/serviio/logoserviio.png 'server serviio nenaběhl ukončuji' 'spusť znovu'
killall -9 java
exit 1
} && echo "server serviio naběhl"
notify-send -i ~/serviio/logoserviio.png 'vyčkávám na start serviio-console' '..testuji'
sleep 8
sleep 5 &
~/serviio/bin/serviio-console.sh &
PID3=$!;
seconds=2
echo -n "vyčkávám na start serviio-console"
sleep 1
while [ $seconds -ge 0 ]
do
sleep 1
echo -en "\r`tput el`$seconds"
seconds=$(expr $seconds - 1 )
done
ps -e | cut -c -5 | grep $PID3 > $PWD/serviio/psc.log
PID4="< $PWD/serviio/psc.log";
PID4=$(cat $PWD/serviio/psc.log);
rm $PWD/serviio/psc.log
echo "PID3" $PID3
echo "PID4" $PID4
[ $PID3 = $PID4 ] || {
echo "serviio-console nenaběhla"
notify-send -i ~/serviio/logoserviio.png 'serviio-console nenaběhla ukončuji' 'spusť znovu'
killall -9 serviio.sh
killall -9 java
exit 1
} && echo "serviio-console naběhla"
notify-send -i ~/serviio/logoserviio.png 'serviio-console naběhla' 'server serviio aktivní' -t 20000
sleep 5 &
pid=$PID3;
echo "PID3" $PID3
while [ $? -eq 0 ]; do
for x in / - \\ \|; do
echo -n "skenuji $x \r";
sleep 0.2;
done
kill -0 $pid 2> /dev/null
done
echo 'konzole byla ukončena, zabíjím server'
notify-send -i ~/serviio/logoserviio.png 'konzole serviio byla ukončena' 'zabíjím server serviio' -t 20000
killall -9 serviio.sh
killall -9 java
exit 0
Ke scriptu:
jako první spustí backend serviio.sh, kde čeká na jeho korektní naběhnutí podle odchyceného PID, až pak spouští frontend console-serviio.sh (je to bezpečnější způsob, pro správné naběhnutí). Pokud se něco nepovede, vše killne a požádá o nové spuštění. Killne i Javu, která při nekorektním ukončení serviia zůstává běžet a blokuje následné spuštění. Pokud si to spustíš v terminálu, tak uvidíš detailnější průběh spouštění. pokud by ti náhodou nestíhalo spouštění a pořád by to padalo, zvedni si čas v proměnných
seconds=
tj. čas který má serviio na start, jinak se ukončuje. ty delší sleepy jsou jen pro zpomalení startu serviia, aby se stihly vykreslovat notifikace. Nakonec zůstává script ve skenu a hlídá si aktivní frontend. To jen z toho důvodu, že pokud ho omylem zavřeš, tak pak ti zůstává zbytečně vyset backend. Takhle se opět killne.
[příloha smazaná administrátorem]