タグ

file descriptorに関するyassのブックマーク (5)

  • logrotateの設定とファイルのアクセスモードについて

    忙しい人のために先にまとめログファイルのopen時のアクセスモードは os.O_WRONLY|os.O_APPEND|os.O_CREATE を指定するlogrotateの設定には nocreate を渡すlogrotateではファイルをmvした後に行う処理が書けるので、そこでアプリケーションに対してシグナルを送ることでlogrotateの処理を実装できるfluentdはログのローテートを頑張って検知している ファイルディスクリプタについてファイルを open するとファイルディスクリプタを得られます。ファイルに書き込む際にはファイルディスクリプタ経由で書き込みを行います。 Linuxシステムプログラミング 23pをちょっと長めに引用します。 ファイルを読み書きする前にはオープンする必要があります。カーネルはオープンしたファイルをプロセスごとに管理しており、これをプロセスのファ

  • シェルスクリプト多重起動の防止(flock(2) を用い、極力可搬に) - Qiita

    シェルスクリプトにおけるアドバイザリロックの実現方法にはいくつかありますが、ロックファイルの有無では、ファイルの消し損ねがよく起きてしまいます。また、pgrep(1) を用いる方法もよく見られますが、同じパスを含むコマンドが実行中であることは多く(特に、エディタで同スクリプトを編集中である場合など)、これまた確実性に欠きます。 最終的にベストの方法は、flock(2) システムコールを使う方法のようです(レンタルサーバなどでは使えないこともあるようですが、まー、今どきならコンテナ環境とか安いですし…)。flock(1) コマンドが使える環境であれば、待ち・ノンブロックの選択、排他ロックの他に参照の共有ロックもできて便利ですが、当座は多重起動を防止したいだけですので、ノンブロックの排他ロックを用います(参考: 「~/bin - using flock to protect critical

    シェルスクリプト多重起動の防止(flock(2) を用い、極力可搬に) - Qiita
  • prefork サーバーと thundering herd 問題 - naoyaのはてなダイアリー

    Catalyst を POE で動かす Engine の Catalyst::Engine::HTTP::POE という実装が CPAN にあります。"Single-threaded multi-tasking Catalyst engine " だそうです。"Single-threaded" と言いつつも実装を覗いてみると環境変数 CATALYST_POE_MAX_PROC を 1 よりも大きく設定することで prefork する実装になってます。POEシングルスレッドではアプリケーション内で発生するブロックを避けることが難しいのでそのための実装じゃないかなと思います。 ところでこの Catalyst POE エンジン、prefork の実装はどのように行っているかというと POE から prefork と名の付いたイベントが発生するとおもむろに子プロセスを生成する、というのもの。複数の

    prefork サーバーと thundering herd 問題 - naoyaのはてなダイアリー
    yass
    yass 2015/06/15
    " Linux では 2.2 系の古いカーネルとそれ以降のカーネルで wake_up 関数群の実装が異なり、新しいものでは事象を待ち合わせているプロセス群から一つのプロセスだけを起床させることができる "
  • 絵で見てわかるファイルディスクリプタ・パイプ・リダイレクト - あしのあしあと

    「シェルで1行ずつファイルから読み込む - あしのあしあと」に引き続き、「シェルで1行ずつファイルから読み込む」シリーズの2回目。今回は、ファイルディスクリプタ(ファイル記述子)、パイプ(パイプライン)、リダイレクト(リダイレクション)のおさらい。今さら感は満載だが、まぁよしとする。なお、エントリで用いている図については、書籍「UNIXネットワークプログラミング入門」を参考に作成した(読んだのは7年前で、今手元にがないのだが、確かこんな絵が書いてあったと思う)。 まず、簡単な凡例を。 で、シェルやコマンドのプロセスが起動した時だが、次の絵のような状態になっている。 プロセスには(すぐに利用可能な)0番、1番、2番のファイルディスクリプタが用意されていて、それぞれ画面と紐づいている(にょろっとした矢印、方向も大事)。0番を「標準入力」、1番を「標準出力」、2番を「標準エラー出力」と呼ぶ(

    絵で見てわかるファイルディスクリプタ・パイプ・リダイレクト - あしのあしあと
  • *nixのプロセスまわりについて書いてたやつがついに書き終わった - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    プロセスさん最終回書いた。 最終回: https://gist.github.com/Shinpeim/5205353 目次: https://gist.github.com/Shinpeim/4736099 第一回を書き始めたときには、もっとさらっと書けるだろうと思ってたんだけど書いてみたらいろいろ書くべきことがあって、なんだかかなり辛い量の文章書いてしまった。最後のほうとかもう書くのがかなりしんどかったんだけど、プロセス周りの話はだいぶ網羅できたんじゃないかなって思う。 小出しに書いてる間、はげましのブクマとかはげましのスターとか付けてくれたひとがいたから書けたし、「おもしろい」って言ってくれたり「わかりやすい」って言ってくれたひとたち当にありがとうございました。あなたがいなければプロセスさんは存在しなかった。 なんか噂によると Working with Unix Processes

    *nixのプロセスまわりについて書いてたやつがついに書き終わった - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • 1