45

Ubuntu で Go プログラムをデーモンとして起動する適切な方法は何ですか? 次に、Monit で監視します。次のようなことをする必要があります:

go run myapp.go &

考慮すべき Go 固有の事柄はありますか?

4

2 に答える 2

45

プログラムの実行可能ファイル ( ) をビルドしてから、 upstartgo build用のスクリプトを記述してプログラムをデーモンとして実行するか、daemonizeなどの外部ツールを使用する必要があります。システムに依存する新興企業に依存しないため、私は後者のソリューションを好みます。デーモン化を使用すると、次のようにアプリケーションを起動できます

daemonize -p /var/run/myapp.pid -l /var/lock/subsys/myapp -u nobody /path/to/myapp.exe

これにより、deamonize によって必要なすべてのデーモンの準備が行われた、正常に動作する UNIX デーモン プロセスが得られます。

于 2012-04-09T04:38:27.440 に答える
9

Go プログラム内からデーモン化する機能に関するバグ レポートがあります: http://code.google.com/p/go/issues/detail?id=227

ただし、プロセスから切り離すだけの場合は、次のいずれかを実行することをお勧めします。

nohup go run myapp.go

また

go run myapp.go & disown

init.dStartup、またはSupervisorのようなものを使用するなど、プロセス マネージャーを利用することもできます。これは個人的にとても気に入っています。

于 2012-04-09T00:55:29.850 に答える