質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

2回答

4100閲覧

Go言語のデーモン化について

n0bisuke

総合スコア273

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

2クリップ

投稿2015/10/15 06:39

GoでAPIサーバー開発をしています。

サーバーアプリケーションの場合、プロセスのデーモン化が必要だと思いますが、
調べたところ、Goではデーモン化する仕組みがそろってなく、他の言語で使っていたプロセス管理のツールを使ってる人が多いみたいでした。

そこで、PM2というNode.jsのツールを使ってみたのですが、これがスマートなやり方なのかどうかわかりません。

このツールを使うべき!こうしたほうがいい!みたいなことを知っている方がいたらご教授願いたいです!

よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

以下の方法を参考にしたらいかがでしょうか?

http://kobegdg.blogspot.jp/2013/03/goweb2webdaemon.html

投稿2015/10/19 06:51

S.Toyoda

総合スコア116

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

デーモン化すると言うことは、対象OSはLinuxでしょうか?
Redhat系で言えば、起動は /etc/init.d へ実行するためのシェルスクリプトを用意し、そこから自作プログラムを実行すればGo言語かどうかにかかわらず、デーモン化ができます。

決まり切った書き方でできるので、既にいくつかあるスクリプトを参考に用意してください。

また、それ以外に各種シグナルを受け取るためのコーディングが必要になります。(必要なければ不要ですが)
次の様にos.Signalを利用すれば、select分でシグナルを待機することができます。

Go

1signalCh := make(chan os.Signal) 2// SIGTERMとSIGHUPを待機する 3signal.Notify(signalCh, syscall.SIGTERM, syscall.SIGHUP) 4select { 5 case ch := <-signalCh: // OSからシグナルキャッチ 6 // 何らかの処理 7}

後はこのあたりが参考になるでしょうか。

Qiita

投稿2015/10/20 04:33

shanxia

総合スコア1038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問