GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie führe ich sbt als Daemon aus?

Die Antwort von oleg-andriyanov hat in meinem Fall nicht funktioniert. (Prozess wurde kurz nach dem Start beendet)

Versuchen Sie in einem solchen Fall als Alternative den unten in Play ML geschriebenen Befehl von Mirko Stocker. https://groups.google.com/forum/#!topic/play-framework/ZgjrPgib0-8

# screen -d -m sbt run

Das sollte auch funktionieren

sbt -Djline.terminal=jline.UnsupportedTerminal run &

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


Sieht aus wie sbt angeforderte Eingabe von Ihrem Terminal. Wenn es nicht wirklich Eingaben benötigt (was wahrscheinlich der Fall ist, wenn Sie das Programm im Hintergrund ausführen), können Sie es wie folgt ausführen:

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

Einzelheiten finden Sie in dieser Antwort.

BEARBEITEN

Ok, das war jetzt ein Rätsel. Kurze Antwort:Führen Sie sbt aus wie folgt:

setsid nohup sbt run &

Begründung:

Der Grund, warum sbt Haltestellen ist die Ankunft von SIGTTOU Signal. Es wird in mehreren Fällen an den Hintergrundprozess geliefert, einschließlich Ändern der Terminalkonfiguration . Dies ist unser Fall, weil gemäß strace -f sbt run & , sbt macht viel schwarze Magie unter der Haube, so:

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

Um dies zu umgehen, können Sie sbt ausführen in einer anderen Sitzung, um es vom aktuellen Terminal zu trennen, damit es nicht /dev/tty öffnet und unser Terminal durcheinander bringt.


Linux
  1. So führen Sie chkdsk unter Windows aus

  2. So führen Sie den Rsync-Prozess im Hintergrund aus

  3. Wie kann ich ein Perl-Skript als System-Daemon unter Linux ausführen?

  4. Wie man ein Python-Skript wie einen Dienst oder Daemon in Linux laufen lässt

  5. Führen Sie das Bash-Skript als Daemon aus

So führen Sie Windows 95 unter Linux aus

So führen Sie Podman unter Windows aus

So führen Sie ein Python-Skript in PHP aus

So führen Sie ein Bash-Skript aus

Wie führe ich Dolphin als Root aus?

So führen Sie Memtest in Ubuntu 22.04 aus