Ruby app.rb
を使用してローカルマシンで実行するSinatraアプリがあります。 sshを介してリモートマシンにデプロイしているときに、バックグラウンドで実行し、stdoutとstderrをログファイルにリダイレクトするにはどうすればよいですか?
再起動時に、以前のログを保持して、新しいメッセージを切り捨てるのではなく、既存のログファイルに追加したいと思います。
Webアプリケーションをデーモンとして実行するための推奨される方法は何ですか?
Nohup Ruby app.rb &
を試しましたが、stderrが欠落しているようで、ログステートメントが正しくない場合があります。
Bashの下で、次のことを試してください。
Nohup Ruby app.rb >> /log/file 2>&1 &
screen -L -dmS somename Ruby app.rb
これにより、「somename」という名前の画面プロセスが開始され、プログラムからのすべての出力が現在の作業ディレクトリのscreenlog.0に記録されます。
なんらかの理由でアプリケーションのコンソールを取り戻したい場合は、screen -r somename
を実行できます。