タグ

programmingとlinuxに関するystreamのブックマーク (4)

  • 適当なスクリプトをデーモン化するのにSupervisorが便利 - id:anatooのブログ

    適当なスクリプトをデーモン化しようと思った時の典型的な要件が以下であるが、この記事でも紹介したpython製のプロセス管理ツールであるSupervisorを使うことによって解決できる。 プロセスの生死の監視する プロセスが死んだら勝手に再起動する 標準出力やエラー出力のログを取る 場合によっては複数プロセスを起動したい プロセスのステータスを簡単に確認したい この記事では、プロセス管理ツールSupervisorの導入を簡単に紹介する。 インストール easy_installからインストールできる。そもそもeasy_installが入ってない場合は以下みたいにインストール。 $ curl -O http://peak.telecommunity.com/dist/ez_setup.py $ python ez_setup.pySupervisorをeasy_installからインストールしま

    適当なスクリプトをデーモン化するのにSupervisorが便利 - id:anatooのブログ
  • 一見読みにくい記法もシェルスクリプトの流儀

    前回に引き続き、今回もOS付属のシェルスクリプトを読んでいく。「当にこれでいいのか?」と思うような読みにくい記述も見つかるが、よく読むとシェルスクリプトならではの流儀を学ぶことができる(編集部) とにかく何か作ってみろ シェルスクリプトはお世辞にも読みやすいプログラミング言語とは言えない。ほかの言語にはない特有のルールがあるので、あまり経験がない人がちょっと複雑なシェルスクリプトを読むと嫌になってしまうかもしれない。 その半面、シェルスクリプトにはちょっと書いてすぐに試せるという良い点がある。シェルスクリプトの解説書やソースコードを読みながら「なんだかよく分からない」「マニュアルを読んでもよく分からない」という人には、短くてもいいからとにかく何かシェルスクリプトを書いて、試してみることを強くお勧めする。 これはどんなプログラミング言語にも言えることだが、習得しようと思っても、解説書を読ん

    一見読みにくい記法もシェルスクリプトの流儀
  • 僕がサクラエディタからVimに乗り換えるまで - give IT a try

    はじめに 恐怖のエディタ、Vim。 僕はこの間までずっとサクラエディタを愛用していましたが、最近Vimを使うようになりました。 ええ、Vimです。あのVimです。Viでもいいけど。 Vim・・・使いこなしている人はそれだけで玄人っぽく見られる伝説のエディタ。 実際にVimを使えばすさまじいスピードのコーディングが可能になる。(らしい) しかしそんな憧れだけで手を出しても大半の技術者は全く手に負えず、すぐに尻尾を巻いて元のエディタに舞い戻ってしまう恐怖のエディタ。 それがVimである。 ・・・はい、僕の中でVimやViのイメージはそんな感じでした。 実際、Unix/Linuxマシンのターミナル上で何度か(いやいや)使ったことがありましたが、まあ扱いにくいのなんのって。 「カーソルは十字キーで動くけど、どうやって入力するの? 」 「えっ? "i"を押せ? 」 「入力が終わったらESC? なんで

    僕がサクラエディタからVimに乗り換えるまで - give IT a try
  • I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;

    サーバ周りの勉強していると、たまにselectとかepollとか言葉が出てきて、理解できてなかったので調べてみた。 I/Oの多重化 例えばサーバ周りの実装を、特に何も考えずにやると、I/Oでブロッキングが発生し、一つのクライアントとしか通信できないということが起こります。これを解決するために fork threads I/Oの多重化 非同期I/O といった方法があります。 この中のI/Oの多重化を実装するためのシステムコールとして、select, poll, epoll, kqueueなどは実装されているようです。 少し調べてみると、次のような記述のような機能をそれぞれが実装するようです。 プログラムで複数のファイルディスクリプタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つ

    I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;
  • 1