タグ

daemonに関するkoko1000banのブックマーク (10)

  • daemontools の代替として Supervisor がよさげ

    node.js なサーバデーモンの管理をしようと思い、何を使おうか検討していたのですが、この手のデファクトスタンダードである daemontools は、特定のディレクトリ構造に従わないといけなかったり、run スクリプトや log/run スクリプトを置いたりしきゃいけなかったりで、余計な作業が多くてお手軽じゃない、ってことで runit を見てみたんですが、ぱっと見 daemontools との違いがよくわからなくて、daemontools とそれほど煩雑さは変わらないように見えたので、もっとお手軽なものがないかと探していたところ見つけたのが Supervisor 。(といっても自分が知らなかっただけで以前からあるみたいですが。) Python 製で easy_install 一発でインストールできる。 $ sudo easy_install supervisor デフォルトの設定フ

  • 革命の日々! daemonについて

    Rubyのconfigure.inには以下のように、*BSD以外は強制的にdaemon(3)がないと判定させる あやしげなロジックがある。 dnl Checks for libraries. AS_CASE(["$target_os"],[*bsd*|dragonfly*],[],[ac_cv_func_daemon=no]) gitで履歴をしらべると、元々Mac OS X だけが腐ってる扱いだったのだが、 後に一般化されている。困ったことに理由はまったく記載されていない。 それをいったら元々のMacOS X が腐ってるという扱いにした理由も書いてないんだけど。 さて、当かどうか分からないがある人から、Linuxのdaemon(3)は来二回 forkが必要なところを一回しかforkしてないので腐ってる。それが原因ではないか と教えて貰った https://www.codeblog.or

  • C言語でprefork型のデーモンを書く(2): 非デーモン prefork シグナルハンドラ付き - yoshifumi1975's diary

    1つの親プロセスとたくさんの子プロセスという構成。親プロセスに SIGTERM を送ると、すべての子プロセスをきれいに終了させた後で終了するようにシグナルハンドラを追加したサンプル。 my_prefork_signal.c シグナルハンドラ付きのソース #include <stdio.h> #include <string.h> #include <apr_hash.h> #include <sys/types.h> #include <unistd.h> #include <sys/wait.h> #include <signal.h> #define MAX_CHILDREN 16 //子プロセスの数 void kill_all_children(int); void signal_handler(int); // 子プロセスの管理にハッシュテーブルを使う static apr_poo

    C言語でprefork型のデーモンを書く(2): 非デーモン prefork シグナルハンドラ付き - yoshifumi1975's diary
  • PC覚え書き | プログラムのデーモン化

    VvZX(qvZX)Afork()VXeR[gpBVXeR[oAovZXmAvZXRs[B ovZXevZXARs[VvZXqvZXBevZXAqvZXfork()lpB evZXAfork()qvZXvZXIDpAqvZX0pBplAevZXqvZXッBlBAqvZXPvOヲB int main(void){ pid_t child // fork()li[ if( !(child=fork()) ){ // child=0qvZX printf("inchildprocess\n"); exit(0); } // evZXqvZXID\ヲ prinft("inparentprocess:childprocessID=%d\n,child); return 0; }

  • emacs23 の daemon mode - 不安定平衡点

    emacs23 から emacs を daemon 化できるようになりました. emacs22 でも起動時に (server-start) などとしておくとemacsclient を使用して既に起動している emacs に接続することができましたが"emacs --daemon" などとすると background で起動することができます. EmacsAsDaemon そんな訳でイロイロ仕込んでみました. 既に emacs server が起動している場合には server-start しない .emacs あたりに (require 'server) (unless (server-running-p) (server-start) ) と書いておくと良いでしょう. X 起動時に emacs を daemon として起動する. 例えば .xsession なんかに emacs --da

    emacs23 の daemon mode - 不安定平衡点
  • daemontools で dt-run を利用した監視サービスの追加方法 - cooldaemonの備忘録

    Google で検索しても、あまり解説を見かけなかったので、さらっとメモを残します。 前提条件 このあたりを、RPM でインストール済みであると仮定。(daemontools、functions、runlevelconf、dt-run がインストール済みで、svscan が /service 配下を監視中という状態) サービス用のディレクトリやファイルを作成 % tree -pug /var/service/sample /var/service/sample |-- [drwxr-sr-x log_user log_user] log | `-- [-rwxr-xr-x log_user log_user] run `-- [-rwxr-xr-x root root ] run 1 directory, 2 filessample、sample/log ディレクトリ共に、パーミッションを

    daemontools で dt-run を利用した監視サービスの追加方法 - cooldaemonの備忘録
  • daemon を作る - すがブロ

    POSIX標準ではないが、 daemon 関数があるので、お手軽に作成できる daemon 関数は man 3 daemon とするか、404 - エラー: 404を参照のこと。 ちなみに、引数に 0 を渡した時の動作は書いてあるけれど、それ意外の場合・・・例えば、カレントディレクトリを移動したくないよ! とかのときにどのように引数を渡していいかはよくわからん。0以外なら〜という話なのか? daemon のサンプル #include <stdio.h> #include <unistd.h> int main(void) { if(daemon(0, 0) == 0) { sleep(5); } else { printf("error\n"); } return 0; } daemon 関数は成功すれば 0 が返る。また、 daemon 関数が成功した時点でターミナルから切り離されたり標

    daemon を作る - すがブロ
  • ウノウラボ Unoh Labs: daemontoolsでデーモン管理

    Emacsでbackward-charをC-lに割り当てているbokkoです。「指相撲で相手の指に届かないくらい指が短いので一回も勝ったことがないんです。だからそんな短い指でC-bなんて押してたら指が痛いんです」と言ってもなかなか信じてもらえないのですが、そんな私でも(global-set-key "\C-l" 'backward-char)というelispを評価するだけで快適にプログラミングさせてくれるEmacsが大好きです。 と、タイトルと関係ない話はこれくいらいにしておいて、今日はdaemontoolsのお話です。 daemontoolsは異常終了してしまったデーモンプロセスを再起動してくれたり、ログローテートを肩代わりしてくれたりするなど、デーモンの制御や管理、監視を行うプログラムの集まりです。例えば、以下のようなプログラムが含まれています。 supervise デーモンの起動、監

  • ウノウラボ Unoh Labs: プロセスの監視を行う デーモン monit

    こんにちは satoです。 monitは プロセスの監視を行うデーモンです。 条件とそれに伴うアクションを指定することができます。 条件とは例えば以下のようなものがあります プロセスが起動していなかったら 特定のプロセスのメモリの使用量が あるサイズを超えたら 特定のプロセスのCPUの使用率が 50%を超えている状態が 10分続いたら 特定のポートに接続できなくなったら など アクションには以下のような物があります 起動、再起動する アラートメールを送信する ユーザスクリプトを実行する など これらを組み合わせて、プロセスの監視を行います。とくにユーザが作成したプログラムの監視などに効果を発揮します。インストールは RedHat系なら yum install monit で入ります。(CentOSや商用のRedHatはrpmforgeをリポジトリとして追加する必要があります) 主な設定ファ

  • 1