GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire sbt come demone?

la risposta di oleg-andriyanov non ha funzionato nel mio caso. (processo terminato subito dopo il lancio)

In tal caso, prova il comando di Mirko Stocker scritto in play ML di seguito per un'alternativa.https://groups.google.com/forum/#!topic/play-framework/ZgjrPgib0-8

# screen -d -m sbt run

Anche questo dovrebbe funzionare

sbt -Djline.terminal=jline.UnsupportedTerminal run &

fonte:https://github.com/sbt/sbt/issues/701


Sembra sbt richiesto l'input dal tuo terminale. Se non ha davvero bisogno di input (come probabilmente accade quando esegui il programma in background), puoi eseguirlo in questo modo:

sbt run </dev/null >output-file &

Vedi questa risposta per i dettagli.

MODIFICA

Ok, questo era un enigma. Risposta breve:esegui sbt come segue:

setsid nohup sbt run &

Motivazione:

Il motivo per cui sbt fermate è l'arrivo di SIGTTOU segnale. Viene consegnato al processo in background in diversi casi, tra cui la modifica della configurazione del terminale . Questo è il nostro caso perché secondo strace -f sbt run & , sbt fa molta magia nera sotto il cofano in questo modo:

[pid 16600] execve("/usr/bin/sh", ["sh", "-c", "stty -g < /dev/tty"], [/* 75 vars */] <unfinished ...>

Per risolvere questo problema, puoi eseguire sbt in una sessione diversa per staccarlo dal terminale corrente, in modo che non si apra /dev/tty e interferisca con il nostro terminale.


Linux
  1. Come eseguire il processo Rsync in background

  2. Come posso eseguire uno script Perl come demone di sistema in Linux?

  3. Come far funzionare uno script Python come un servizio o un demone in Linux

  4. Come eseguire lo script Python come servizio?

  5. Esegui lo script bash come demone

Come eseguire Windows 95 su Linux

Come eseguire Podman su Windows

Come eseguire uno script Python in PHP

Come eseguire uno script Bash

Come eseguire Dolphin come root?

Come eseguire Memtest in Ubuntu 22.04