タグ

daemonとgoに関するclavierのブックマーク (3)

  • GitHub - fiorix/go-daemon: Utility to "daemonize" Go programs

    Go daemon (or just god) is a utility to "daemonize" Go programs that originally only run in foreground and write logs to the console. Go daemon can turn these programs into daemons by managing essential aspects of their execution. The process of making a program become a daemon has very peculiar steps and can be done outside the code. This is what god is for. It executes a program for you doing th

    GitHub - fiorix/go-daemon: Utility to "daemonize" Go programs
  • Goでデーモンを作るにはどうするのが良い? - Qiita

    少し前にAdvent Calendarのネタでswiftfsと言うツールを作ったのですが、Goでデーモンプログラムをどう書けば良いのかよくわからなかった。以下の記事を参考にしたけど、そもそもfork()しちゃいかんとなると、なかなか難しいですね。 Goでデーモンを実装する で、swiftfsは以下のような実装にしました。syscall使うとWindowsとかで動かなくなってしまうとか、そもそも長いとか、あまり良い実装ではないように思います。Go的にもっとい良い方法があったら教えて下さい。コード全文は末尾とGistにあります。 親プロセス、子プロセス(デーモン体)共通 func main() { var child *bool = flag.Bool("child", false, "Run as a child process") flag.Parse() // 子プロセスとのパイプを作

    Goでデーモンを作るにはどうするのが良い? - Qiita
  • Go で書いたサーバーを管理するには circus が便利 - methaneのブログ

    Go を使うとサーバーとアプリケーションの境界が無くなり、アプリケーションサーバーを書けるようになります。 それは良いことなのですが、アプリケーションを書く人が、従来サーバーを書く人が設計していた機能を理解して実現できないと、運用できないサーバーができあがる結果になってしまいます。 例えば Apache は、 master, worker プロセスが分離していて、設定変更を反映させるときなどは新しい worker を作ってから古い worker を殺すことで、サービスを一瞬も止めずに worker を再起動していました。これを graceful restart と呼びます。 Go で 1024 以下のポートを Listen するアプリを作る で触れたとおり、 Go はプロセス管理システムを作るのには少し向いていない面がありますし、せっかくアプリケーションプログラマーが簡単にサーバーを書ける

    Go で書いたサーバーを管理するには circus が便利 - methaneのブログ
  • 1