Po přidání & musíte udělat jednu zásadní věc na konci příkazu. Proces je stále spojen s terminálem. Musíte spustit disown po spuštění příkazu java.
java -jar yourApp.jar > log.txt &
disown
Nyní můžete terminál zavřít.
Existuje několik způsobů, jak něčeho takového dosáhnout:
- nohup java -server myApplication.jar > /log.txt- to je docela přímočaré. Pouze to přepne aplikaci na pozadí. Bude to fungovat, ale není to moc dobrý způsob, jak toho dosáhnout.
- Použijte shell wrapper a výše uvedenou aplikaci OR démon. Tento přístup používá mnoho open source projektů a je docela dobrý pro většinu scénářů. Navíc může být zahrnut do init.da požadovanou úroveň běhu s pravidelnými příkazy start, stop a status. V případě potřeby mohu poskytnout příklad.
- Sestavte si svůj vlastní démonový server pomocí Java Service Wrapper nebo Apache Jakarta Commons Daemon. Opět – oba jsou mimořádně oblíbené, dobře otestované a spolehlivé. A je k dispozici pro Linux i Windows! Ten z Apache Commons používá server Tomcat! Navíc je tu Akuma.
 Osobně bych zvolil řešení 2 nebo 3, pokud budete potřebovat tento server v budoucnu používat a/nebo jej distribuovat klientům, koncovým uživatelům atd. nohup je dobré, pokud potřebujete něco spustit a nemáte čas na vývoj složitějšího řešení problému.
Reklama 2:
Nejlepší skripty, které používá mnoho projektů, naleznete zde.
 Pro Debian/Ubuntu lze použít velmi jednoduchý skript založený na start-stop-daemon . V případě pochybností je /etc/init.d/skeleton lze upravit.
#!/bin/sh
DESC="Description"
NAME=YOUR_NAME
PIDFILE=/var/run/$NAME.pid
RUN_AS=USER_TO_RUN
COMMAND=/usr/bin/java -- -jar YOUR_JAR
d_start() {
    start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --chuid $RUN_AS --exec $COMMAND
}
d_stop() {
    start-stop-daemon --stop --quiet --pidfile $PIDFILE
    if [ -e $PIDFILE ]
        then rm $PIDFILE
    fi
}
case $1 in
    start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
    ;;
    stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
    ;;
    restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    sleep 1
    d_start
    echo "."
    ;;
    *)
    echo "usage: $NAME {start|stop|restart}"
    exit 1
    ;;
esac
exit 0
            Jaký je význam úvodních a koncových podtržítek v identifikátorech jádra Linuxu?         
            Jak stáhnout soubor ze serveru pomocí SSH?