Kode: Vælg alt
sleep 10; serviio-console.sh
Kode: Vælg alt
sleep 10; serviio-console.sh
lath skrev:Hej @Toddvang
Du kan godt lægge en tidsforsinkelse ind
Du laver et wrapper script, som startes med:Kode: Vælg alt
start on started networking
script
/<path-to-serviio>/serviio_wrapper.sh
end script[
Først laver du en serviio_wrapper.sh filen (alle kommandoer er med med den sødvanlige sudo foran, hvis stien er uden for din $HOME (hjemmemappe):Kode: Vælg alt
cd /<path-to-serviio>/
Kode: Vælg alt
touch ./serviio_wrapper.sh
og den fil åbnes så for skrivning med:Kode: Vælg alt
gedit ./serviio_wrapper.sh
hvor du skriver:Kode: Vælg alt
#!/bin/sh
#Herunder er "exec" "kør et program", og "$0" dette scripts filnavn med den absolutte sti, og "$@" er
#alle argumenter til dette wrapper script, som vi så senere råkopierer til serviio.sh shell scriptet
exec /bin/bash "$0" -- "$@"
# sleep er en kommando der sover i det antal sekunder man skriver lige efter kommandoens navn : sleep + det
#obligatoriske mellemrumstegn - sleep 10 sover i 10 sekunder
sleep 10
#start serviio. sh shell scriptet
/<path-to-serviio>/serviio.sh "$@"
Husk at gemme scriptet før du lukker ned for editoren.
/Lars
Kode: Vælg alt
#!/bin/sh
#Herunder er "exec" "kør et program", og "$0" dette scripts filnavn med den absolutte sti, og "$@" er
#alle argumenter til dette wrapper script, som vi så senere råkopierer til serviio.sh shell scriptet
exec /bin/bash "$0" -- "$@"
# sleep er en kommando der sover i det antal sekunder man skriver lige efter kommandoens navn : sleep + det
#obligatoriske mellemrumstegn - sleep 10 sover i 10 sekunder
sleep 10
#start serviio. sh shell scriptet
/<path-to-serviio>/serviio.sh "$@"
#start serviio-console. sh shell scriptet med 20 sec forsinkelse
/<path-to-serviio>/serviio-console.sh - 20 "$@"
AJenbo skrev:Hvis serviio.sh ikke forkert service ud som en dæmon så vil dit script ikke kommentere end der til og din consol vil aldrig starte, siden du heller sikke starter programmet som en service vil den heller ikke kunne genstarte sig selv hvis det bliver nødvendigt. Den rigtige løsning er at få det script der starter consolen til at vente på at servicen er startet.
Toddvarg skrev:AJenbo skrev:Hvis serviio.sh ikke forkert service ud som en dæmon så vil dit script ikke kommentere end der til og din consol vil aldrig starte, siden du heller sikke starter programmet som en service vil den heller ikke kunne genstarte sig selv hvis det bliver nødvendigt. Den rigtige løsning er at få det script der starter consolen til at vente på at servicen er startet.
kan man gøre det ved at starte serviio.sh som der er nu ved /etc/init og lægge start af serviio-console.sh ind i scriptet til serviio.sh?
AJenbo skrev:Lad fortsat serviio.sh via /etc/init og tilpas serviio-console.sh så den tjekker om servicen er kørrende inden den åbner programmet.
Kode: Vælg alt
#!/bin/sh
### ====================================================================== ###
## ##
## Serviio Console ript ##
## ##
### ====================================================================== ###
DIRNAME=`dirname $0`
PROGNAME=`basename $0`
# OS specific support (must be 'true' or 'false').
cygwin=false;
darwin=false;
linux=false;
case "`uname`" in
CYGWIN*)
cygwin=true
;;
Darwin*)
darwin=true
;;
Linux)
linux=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$SERVIIO_CONSOLE_HOME" ] &&
SERVIIO_CONSOLE_HOME=`cygpath --unix "$SERVIIO_CONSOLE_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Setup SERVIIO_CONSOLE_HOME
if [ "x$SERVIIO_CONSOLE_HOME" = "x" ]; then
# get the full path (without any relative bits)
SERVIIO_CONSOLE_HOME=`cd $DIRNAME/..; pwd`
fi
export SERVIIO_CONSOLE_HOME
# Setup the JVM
if [ "x$JAVA" = "x" ]; then
if [ "x$JAVA_HOME" != "x" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA="java"
fi
fi
# Setup the classpath
SERVIIO_CONSOLE_CLASS_PATH="$SERVIIO_CONSOLE_HOME/lib/*:$SERVIIO_CONSOLE_HOME/config"
# Setup Serviio specific properties
JAVA_OPTS="-Dserviio.home=$SERVIIO_CONSOLE_HOME -Djava.net.preferIPv4Stack=true"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
SERVIIO_CONSOLE_HOME=`cygpath --path --windows "$SERVIIO_CONSOLE_HOME"`
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
SERVIIO_CONSOLE_CLASS_PATH=`cygpath --path --windows "$SERVIIO_CONSOLE_CLASS_PATH"`
fi
# Execute the JVM in the foreground
"$JAVA" -Xms5M -XX:+UseParNewGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 $JAVA_OPTS -classpath "$SERVIIO_CONSOLE_CLASS_PATH" org.serviio.console.ServiioConsole "$@"
Toddvarg skrev:AJenbo skrev:Lad fortsat serviio.sh via /etc/init og tilpas serviio-console.sh så den tjekker om servicen er kørrende inden den åbner programmet.
Hvordan laves et sådan script og hvor vil det placeres. Kan man placere det i startup program. Hvis jeg nu kalder den nye fil serviio-console-forsinkelse.sh og dens opgave bliver at checke at serviio.sh kører og derefter starte serviio-console.sh. Jeg antager at serviio-console-forsinkelse.sh kan placeres i samme mappe som serviio.sh og servioo-console.sh.
Hvordan vil en sådan code se ud. Det er nok der jeg er lidt på bar bund.
Eller mener du at man skal gå ind og tilpasse serviio-console.sh direkte og starte den fra startup programmer. Jeg har egentlig ikke overvejet om den måske allerede checker om serviio.sh kører, inden den selv starter op. Uanset, her er koden til serviio-console.sh.Kode: Vælg alt
#!/bin/sh
### ====================================================================== ###
## ##
## Serviio Console ript ##
## ##
### ====================================================================== ###
DIRNAME=`dirname $0`
PROGNAME=`basename $0`
# OS specific support (must be 'true' or 'false').
cygwin=false;
darwin=false;
linux=false;
case "`uname`" in
CYGWIN*)
cygwin=true
;;
Darwin*)
darwin=true
;;
Linux)
linux=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$SERVIIO_CONSOLE_HOME" ] &&
SERVIIO_CONSOLE_HOME=`cygpath --unix "$SERVIIO_CONSOLE_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Setup SERVIIO_CONSOLE_HOME
if [ "x$SERVIIO_CONSOLE_HOME" = "x" ]; then
# get the full path (without any relative bits)
SERVIIO_CONSOLE_HOME=`cd $DIRNAME/..; pwd`
fi
export SERVIIO_CONSOLE_HOME
# Setup the JVM
if [ "x$JAVA" = "x" ]; then
if [ "x$JAVA_HOME" != "x" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA="java"
fi
fi
# Setup the classpath
SERVIIO_CONSOLE_CLASS_PATH="$SERVIIO_CONSOLE_HOME/lib/*:$SERVIIO_CONSOLE_HOME/config"
# Setup Serviio specific properties
JAVA_OPTS="-Dserviio.home=$SERVIIO_CONSOLE_HOME -Djava.net.preferIPv4Stack=true"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
SERVIIO_CONSOLE_HOME=`cygpath --path --windows "$SERVIIO_CONSOLE_HOME"`
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
SERVIIO_CONSOLE_CLASS_PATH=`cygpath --path --windows "$SERVIIO_CONSOLE_CLASS_PATH"`
fi
# Execute the JVM in the foreground
"$JAVA" -Xms5M -XX:+UseParNewGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 $JAVA_OPTS -classpath "$SERVIIO_CONSOLE_CLASS_PATH" org.serviio.console.ServiioConsole "$@"
lath skrev:Toddvarg skrev:AJenbo skrev:Lad fortsat serviio.sh via /etc/init og tilpas serviio-console.sh så den tjekker om servicen er kørrende inden den åbner programmet.
Hvordan laves et sådan script og hvor vil det placeres. Kan man placere det i startup program. Hvis jeg nu kalder den nye fil serviio-console-forsinkelse.sh og dens opgave bliver at checke at serviio.sh kører og derefter starte serviio-console.sh. Jeg antager at serviio-console-forsinkelse.sh kan placeres i samme mappe som serviio.sh og servioo-console.sh.
Hvordan vil en sådan code se ud. Det er nok der jeg er lidt på bar bund.
Eller mener du at man skal gå ind og tilpasse serviio-console.sh direkte og starte den fra startup programmer. Jeg har egentlig ikke overvejet om den måske allerede checker om serviio.sh kører, inden den selv starter op. Uanset, her er koden til serviio-console.sh.Kode: Vælg alt
#!/bin/sh
### ====================================================================== ###
## ##
## Serviio Console ript ##
## ##
### ====================================================================== ###
DIRNAME=`dirname $0`
PROGNAME=`basename $0`
# OS specific support (must be 'true' or 'false').
cygwin=false;
darwin=false;
linux=false;
case "`uname`" in
CYGWIN*)
cygwin=true
;;
Darwin*)
darwin=true
;;
Linux)
linux=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$SERVIIO_CONSOLE_HOME" ] &&
SERVIIO_CONSOLE_HOME=`cygpath --unix "$SERVIIO_CONSOLE_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Setup SERVIIO_CONSOLE_HOME
if [ "x$SERVIIO_CONSOLE_HOME" = "x" ]; then
# get the full path (without any relative bits)
SERVIIO_CONSOLE_HOME=`cd $DIRNAME/..; pwd`
fi
export SERVIIO_CONSOLE_HOME
# Setup the JVM
if [ "x$JAVA" = "x" ]; then
if [ "x$JAVA_HOME" != "x" ]; then
JAVA="$JAVA_HOME/bin/java"
else
JAVA="java"
fi
fi
# Setup the classpath
SERVIIO_CONSOLE_CLASS_PATH="$SERVIIO_CONSOLE_HOME/lib/*:$SERVIIO_CONSOLE_HOME/config"
# Setup Serviio specific properties
JAVA_OPTS="-Dserviio.home=$SERVIIO_CONSOLE_HOME -Djava.net.preferIPv4Stack=true"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
SERVIIO_CONSOLE_HOME=`cygpath --path --windows "$SERVIIO_CONSOLE_HOME"`
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
SERVIIO_CONSOLE_CLASS_PATH=`cygpath --path --windows "$SERVIIO_CONSOLE_CLASS_PATH"`
fi
# Execute the JVM in the foreground
"$JAVA" -Xms5M -XX:+UseParNewGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 $JAVA_OPTS -classpath "$SERVIIO_CONSOLE_CLASS_PATH" org.serviio.console.ServiioConsole "$@"
Selve serviio-console.sh scriptet tjekker ikke om serviio kører, men det gør Java programmet som scriptet starter helt sikkert.
Du skal altså have en JRE (Java Runtime Enviroment) installeret før org.serviio.console.ServiioConsole Java programmet kan virke.
Fra java.net.preferIPv4Stack=true kan jeg også se at du muligvis kan få problemer, hvis du har aktiveret firewallen, sådan at der blokeres for trafik til services på localhost.
Localhost er hostnavnet for IP adressen 127.0.0.1, der er IP adressen til computeren selv.
/Lars