GNU/Linux >> Linux の 問題 >  >> Linux

sbt をデーモンとして実行するには?

私の場合、オレグアンドリヤノフの答えはうまくいきませんでした.(プロセスは起動後すぐに終了しました)

そのような場合は、代わりに下記の play ML で書かれた Mirko Stocker のコマンドを試してください。https://groups.google.com/forum/#!topic/play-framework/ZgjrPgib0-8

# screen -d -m sbt run

これも機能するはずです

sbt -Djline.terminal=jline.UnsupportedTerminal run &

ソース:https://github.com/sbt/sbt/issues/701


sbt のようです 端末からの要求された入力。本当に入力が必要ない場合 (プログラムをバックグラウンドで実行している場合など)、次のように実行できます:

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

詳細については、この回答を参照してください。

編集

さて、それはパズルでした。簡単な答え:sbt を実行します 次のように:

setsid nohup sbt run &

根拠:

sbtの理由 停留所は SIGTTOU の到着です 信号。 端末構成の変更など、いくつかのケースでバックグラウンド プロセスに配信されます . strace -f sbt run & によると、これが私たちのケースです。 、 sbt このようにフードの下で多くの黒魔術を行います:

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

これを回避するには、sbt を実行します。 別のセッションで現在の端末から切り離して、/dev/tty を開いて端末を混乱させないようにします。


Linux
  1. Rsync プロセスをバックグラウンドで実行する方法

  2. LinuxでPerlスクリプトをシステムデーモンとして実行するにはどうすればよいですか?

  3. PS3でLinuxを実行するには?

  1. Linux – Linuxからブートローダーを実行する方法は?

  2. Sbtをアンインストールする方法は?

  3. スクリプトを実行する方法??

  1. Windowsでchkdskを実行する方法

  2. Linux で Python スクリプトをサービスまたはデーモンのように実行する方法

  3. Pythonスクリプトをサービスとして実行するには?