タグ

unixに関するkwryのブックマーク (110)

  • 起動済みプロセスのリダイレクト先を設定したい

    プロセスをバックグラウンド実行させてログアウトしたら、制御端末がなくなるので、write 先がなくてエラーになる リダイレクトするのを忘れた というようなケースを想定。 screen を使ってるとか、リダイレクト先をちゃんと指定していればいいのだけど、うっかりはあるので。 stackoverflow に解決案があったのでメモ。 Redirect STDERR / STDOUT of a process AFTER it’s been started, using command line? http://stackoverflow.com/questions/593724/redirect-stderr-stdout-of-a-process-after-its-been-started-using-command-lin 起動済みプロセスのリダイレクト先を設定する アイデアは GDB

    起動済みプロセスのリダイレクト先を設定したい
    kwry
    kwry 2013/09/03
  • 補助グループ権限もつけてくれるsetuidgidのようなもの - (ひ)メモ

    daemontoolsのsetuidgidは補助グループ(supplementary groups)権限をつけてくれないのですが、どうしてもつけたい時もあります。あるはずです。 いくつか検討したのでそのメモです。 自分で書く! 結局この方法にしました。 [twitter:@kazuho] さんの setuidgid のような setusergroups https://gist.github.com/kazuho/6181648 [twitter:@satoh_fumiyasu] さんの runuser のような runuser.pl https://gist.github.com/fumiyas/6181427 daemontools-encore の setuidgid を使う http://untroubled.org/daemontools-encore/ これの setuidgi

    補助グループ権限もつけてくれるsetuidgidのようなもの - (ひ)メモ
  • 親子関係のないプロセス間でファイルディスクリプタを共有する - tmtms のメモ

    UNIX や Linux でプロセス間でファイルディスクリプタを共有するには、ファイルディスクリプタを作成後に fork して親子間で共有するという方法が良く取られますが、UNIXドメインソケットを使って、親子関係のないプロセス間でファイルディスクリプタを受け渡すことができます。 C だといろいろ面倒なのですが、Ruby だと UNIXSocket#send_io と #recv_io を使って簡単に実現できます。 sender.rb require 'socket' File.unlink 'socket' rescue nil sock = UNIXServer.new 'socket' s = sock.accept f = File.open ARGV.first s.send_io f receiver.rb require 'socket' sock = UNIXSocket.

    親子関係のないプロセス間でファイルディスクリプタを共有する - tmtms のメモ
  • ssコマンドのちょっといい所見てみたい。のでネットワーク統計情報がどの程度見られるか試してみた。 - 256bitの殺人メニュー

    netstatさんが時代遅れだって!? netstat使ってるのは小学生までだよねー。 キャハハk(ry 、、、というのは冗談ですが、これからはssコマンドらしいって聞いたので、どんな感じで使えるか使ってみた。 ssコマンド netstatの代替コマンドらしく、現在の通信状況の確認に使えるコマンドです。 メリットはsocketのrawでのsocketの扱いができる点かなと。 と、ipv6に強いところのようです。 でもあんまりipv6環境ってないですし、普段使いで代替になるかなーと思って見てみました。 基的な使い方 netstatと似た感じっすよ。これ。 netstat # netstat -naot (snip) tcp 0 0 192.168.100111:50271 192.168.10131:27218 ESTABLISHED keepalive (215.43/0/0) tcp

    ssコマンドのちょっといい所見てみたい。のでネットワーク統計情報がどの程度見られるか試してみた。 - 256bitの殺人メニュー
  • errno

    errnoError 一覧 Unix系errno一覧 のマルマルコピーです. ななお さん、ありがとうございます.

    kwry
    kwry 2013/05/26
  • なるほどUnixプロセス読んだ - デーモン化のためのdouble fork - はこべにっき ♨

    なるほどUnixプロセス ― Rubyで学ぶUnixの基礎を読みました。UNIXプロセスの話、特に実用的なforkの利用方法についての話がコンパクトにまとまっていてわかりやすかったです。あまり詳細に踏みこんでいるという感じではないけど、とっかかりにこのにあるような知識があるのは良いと思いました。(シェルスクリプトから"foreman start"したときにCtrl-Cで終了できない現象の解説 - はこべブログ ♨ではまる前に読んでおいたら、もっとはやく問題解決できたと思います。) 第18章 デーモンプロセスに関係して二回目のforkについていろいろ調べたので、せっかくなのでメモを残しておきます。*1 第18章 デーモンプロセス では、プロセスをデーモン化するために必要な手順が丁寧に説明されています。その中で、プロセスを制御端末から切り離す手順として以下のようなコードが紹介されていました。

    なるほどUnixプロセス読んだ - デーモン化のためのdouble fork - はこべにっき ♨
    kwry
    kwry 2013/04/29
  • UNIX Command Idioms

    CLI is a good way to communicate with computers, and good communication needs some idioms, like natural languages. Here are idioms I usually use. I will describe them or add others later. Why don’t you share your idioms? :) Others Re: UNIX Command Idioms - (ひ)メモ Re: Re: UNIX Command Idioms - studio3104::Blog ps auxf ls -ltrh netstat -taopn tar xvf | cut | sort | uniq -c | sort -n rsync -avzn file

    UNIX Command Idioms
  • Re: Re: UNIX Command Idioms - Studio3104::BLOG.new

    UNIX Command Idioms Re: UNIX Command Idioms - (ひ)メモ I will append up to remember...little by little. I was examined by using a command such as the following. history | awk '{print $2}' | sort | uniq commands ls -ltr netstat -tapn top -d 1 In TOP screen, I press 1 and c. ps -ef grep -irl ./ MySQL mysqldump --single-transaction --master-data=2 --default-character-set=binary --hex-blob watch "mysql -

    Re: Re: UNIX Command Idioms - Studio3104::BLOG.new
  • プロセス間の期限付き排他ロック - (ひ)メモ

    追記 2013-03-04 [twitter:@dankogai] さんにも言及されてました>< 404 Blog Not Found:perl - soloで任意のコマンドを期限付きで排他実行する 追記 2013-03-01 つづきを書きました。 続・プロセス間の期限付き排他ロック - (ひ)メモ 追記 2013-02-27 コメント欄でのやりとりの通り、穴がある(クリティカルセクションに複数プロセスが突入する可能性がある)のでちょっと出直してきます!! やりたいこと プロセス間の排他的実行を制御したい 一定時間経過したら実行できるようにしたい 例えば、フェイルオーバーを実行するスクリプトは、何度も実行できるとフェイルオーバー/バックを繰り返してフラップするので、一度フェイルオーバーしたら一定時間は実行できないようにしたい 実装 シンボリックリンクを使って排他制御する 期限切れは、シンボ

    プロセス間の期限付き排他ロック - (ひ)メモ
    kwry
    kwry 2013/02/28
  • Working with Unix ProcessesをPerlで - $shibayu36->blog;

    以前 Working with Unix Processesというを読んだのですが、このがUnixにおけるプロセスについて非常にわかりやすく解説されていました。それで自分で内容をメモしてみたり、さらにわからないところを調べたり、参考のプログラムをPerlで書いたり(このではRubyで書かれています)してみたのですが、ブログにまとめてなかったので、ちょっと書いてみます。 (注意)書いていたらすごく長くなりました。興味のある方は、適当に時間のあるときにでもどうぞ。 Chapter 2 : Introduction プロセスのことを知るとコードを読むだけでは分からないややこしい問題が分かるようになるよ Chapter 3 : Primer Unixはユーザ空間とカーネル空間がある kernelの機能はsystem call経由で利用する ユーザ空間ではプログラムが動く manual man

    kwry
    kwry 2012/12/12
  • 事務処理に必須の「ファイル・ロッキング」

    事務処理に必須の「ファイル・ロッキング」 事務処理に必須で、しかも、まとまった情報の少ない、 UNIX システムのファイ ル・ロッキングについて、その原理と手法を解説します。この解説は、この問題の すべてをカバーするわけではありませんが、現実に発生するすべての問題に対処す ることができます。 creat(), link(), open() 等のシステム・コールについては、 UNIX プログラミ ング・マニュアルの2章を併読するとわかります。POSIX 1003.1 のロック機構に ついては、規格書だけではわかりにくいと思いますので、詳述しました。 ファイル・ロッキングの必要性 「UNIX」は、マルチ・ユーザ/マルチ・タスクの OS ですから、もともと、複数の ユーザが協力して、同じ仕事をする形態の事務処理に適しているわけですが、UNIX 成功の基盤となった、 一貫したテキストファイルの採用

    kwry
    kwry 2012/09/08
  • 改行を置換したい | skmks

  • 「load average」によるCPU負荷の確認

    Solaris 8でメールサーバを構築しています。以前、サーバの応答が遅くなった際、CPU負荷を確認しようと思いましたが、Solaris 8にはtopコマンド*がありませんでした。そこで、uptimeコマンドを使用したのですが、出力の「load average」の単位が分かりません。非常に応答が悪い状態でも、「1」や「2」という値なので、CPU使用率ではないようです。この単位を教えてください。 run queueとwait queue 「load average」は、run queueに入っているジョブ*の数を表しています。run queueとはCPUに割り当てられたジョブが入れられる待ち行列のことで、CPU数が1つのときに「2」と表示された場合、CPUは2つのジョブを実行しています。この平均値が「load average」であり、左から1分、5分、15分間のrun queueにあるジョブ

  • Unix errno一覧

    他サイトで見つけたのですが,現在とちょっと違っているようなので自分で調べてまとめてみました. とりあえずmanページと,返ってきたエラーコードのみの少ない情報ですが(^^;) (Fedora9 Kernel:2.6.25) 1 EPERM Operation not permitted (POSIX.1) 2 ENOENT No such file or directory (POSIX.1) 3 ESRCH No such process (POSIX.1) 4 EINTR Interrupted function call (POSIX.1) 5 EIO Input/output error (POSIX.1) 6 ENXIO No such device or address (POSIX.1) 7 E2BIG Argument list too long (POSIX.1) 8 E

  • 初心者への GNU autoconf のススメ

    初心者への GNU autoconf のススメ Lynx Optimized Pages! This page is written in Japanese. 144922 accesses since 2001/07/27. 17 accesses per day. [ TOP ] 目次: はじめに なぜ autoconf? インストール 実際に使ってみる ひとまずプログラムを書く configure.in を作る Makefile.in を修正する configure.in を見ながらいろいろ修正する config.h を作ってみる 終わりに 謝辞 変更履歴 はじめに このドキュメントは、初心者とはいえ C プログラミングができて Makefile を記述することが 可能な人を対象にしています。 「使ってみたいけど、とっかかりがわからない」という人に読んでほしいです。 なぜ autoc

    kwry
    kwry 2011/06/16
  • find -execとxargs - うまいぼうぶろぐ

    find -execは、1ファイルに対して1回ずつコマンドを実行。xargsは標準入力から受け取った複数のファイルに対して、コマンドを1回で実行(といってもシェルに渡せる限界があるから、入力が多すぎる場合は複数回にわけて実行)。だから、xargsのほうが早いと思っていた。例えば特定のファイルを消す場合。 $ find /tmp/ -type f -mtime +1 -exec rm {} \; # 以下とほぼ同等 $ find /tmp/ -type f -mtime +1 -print0 | xargs -0 -n1 rmところが、find -execで'\;'ではなく、'+'を指定すればxargsと同じように、複数ファイルに対してコマンド実行するらしい。 http://ja.wikipedia.org/wiki/Xargs これはすべての単一ファイルに対して一回ずつ rm を呼んでいる

    find -execとxargs - うまいぼうぶろぐ
  • 第6回 UNIXプログラミングの勘所(4) | gihyo.jp

    ファイルの保存 ここまでいくつかの見落としがちな処理を見てきましたが、最後にどんなプログラマでも必ず行う「ファイルの保存」についての注意点を考察してみたいと思います。 ファイルを確実に書き込むためには、どのようなコードを書けばよいでしょうか。「⁠fsync」を呼べばいい。それだけではありません。実際には、次の2点も必要になってきます。 (内容の差し替えだった場合に)書き換え途中の状態にならないこと ユーザに対して書き込み完了を返したあとは、ディスクがクラッシュしない限り、データが消えないこと UNIX系OSでこれらの要件を満たすには、まずテンポラリファイルに新しいデータを書いてディスクに同期し(①②⁠)⁠、(⁠必要ならば)古いファイルをバックアップファイル名を使っても参照できるよう別名を付与し(③⁠)⁠、次にテンポラリファイルのファイル名を差し替え対象になっているファイルの名前に切り替え(

    第6回 UNIXプログラミングの勘所(4) | gihyo.jp
    kwry
    kwry 2011/04/06
  • 第6回 UNIXプログラミングの勘所(3) | gihyo.jp

    ネットワークプログラムとSIGPIPE 「私の書いたサーバが突然死するんです。どうしてでしょうか」という質問を受けることがあります。これは多くの場合、SIGPIPEの処理を忘れていることが原因です。SIGPIPEとは、切断されたネットワークソケットなどにデータを書き込もうとした際に送出されるUNIXシグナルです。特に設定しない限り、プロセスはSIGPIPEを受け取ると強制終了されます。そのため、通信が突然切断される可能性のあるTCPサーバにおいては、SIGPIPEを無視するよう設定する必要があります。 # デフォルトの動作(SIGPIPEの場合はプロセスの終了)に設定 $SIG{PIPE} = 'DEFAULT'; # SIGPIPEを無視するよう設定 $SIG{PIPE} = 'IGNORE'; # SIGPIPEを受信した際に実行するサブルーチンリファレンスを # 設定 $SIG{PI

    第6回 UNIXプログラミングの勘所(3) | gihyo.jp
    kwry
    kwry 2011/04/05
  • 第6回 UNIXプログラミングの勘所(2) | gihyo.jp

    forkとファイルハンドル UNIX系のOSでは、複数のプログラムが、それぞれプロセスという単位で動作しています。forkというシステムコール[1]が呼び出されると呼び出したプロセスの複製がOSによって作成され、複製されたプロセス(子プロセス)がexecveというシステムコールを使って別のプログラムにすり替わる、というしくみでさまざまな処理を実行するようになっています。 「複製」と言っても、全部の情報が複製されるわけではありません。プロセスのメモリイメージが複製される[2]一方で、プロセスが開いている「オープンファイル記述」(⁠open file description)(⁠注3)は複製されません。forkのあとは、親プロセスと子プロセスの両者が、単一のオープンファイル記述を指す「ファイル記述子」(⁠file descriptor)(⁠注4)を持つことになります(図2⁠)⁠。 図2 for

    第6回 UNIXプログラミングの勘所(2) | gihyo.jp
    kwry
    kwry 2011/04/04
  • 第6回 UNIXプログラミングの勘所(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはJapanizeやText::MicroTemplateなどで有名な奥一穂さんで、テーマはUNIXプログラミングです。 はじめに 「正しいプログラム」を書くために必要な知識とはなんでしょうか。テストが正しく実行されることは、正しいプログラムであるための必要条件に過ぎません。プログラミングにおいてはプログラミング言語だけでなく、OSの動作やデータベース、ネットワークプロトコルなど、さまざまな知識が必要になります。 PerlはもともとUNIX系のOS(LinuxやFreeBSD、Mac OS XなどのOSを稿では以下UNIXと総称します)の上で処理を行うためのスクリプト言語として開発され、今日でもPerlプログラムの多くはUNIX上で実行されています。しかし、「⁠Perlでプログラミング」と言った場合はともすれば

    第6回 UNIXプログラミングの勘所(1) | gihyo.jp
    kwry
    kwry 2011/04/04