Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Goでは現在デーモンの実装は公式にサポートされていない。詳細はissue 227をご覧頂きたい。 そのため、現状はGoでforegroundで動くプログラムを作り、デーモン化はsupervisordなど外部のプログラムに任せるべきである。実際私もWebアプリケーションのデプロイはそうしている。 しかし、それでもGoだけでデーモンを立ち上げるプログラムを書きたいことがある。 その際に使える選択肢を紹介したい。(例をシンプルにするためいろいろ省略している。Macでは動いた。) 1. syscallでforkを行う _, ret, _ := syscall.RawSyscall(syscall.SYS_FORK, 0, 0, 0) if ret != 1 { // Exit parent os.Exit(0) } for { // do something in child process }
適当なスクリプトをデーモン化しようと思った時の典型的な要件が以下であるが、この記事でも紹介したpython製のプロセス管理ツールであるSupervisorを使うことによって解決できる。 プロセスの生死の監視する プロセスが死んだら勝手に再起動する 標準出力やエラー出力のログを取る 場合によっては複数プロセスを起動したい プロセスのステータスを簡単に確認したい この記事では、プロセス管理ツールSupervisorの導入を簡単に紹介する。 インストール easy_installからインストールできる。そもそもeasy_installが入ってない場合は以下みたいにインストール。 $ curl -O http://peak.telecommunity.com/dist/ez_setup.py $ python ez_setup.pySupervisorをeasy_installからインストールしま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く