タグ

processに関するdecoy2004のブックマーク (6)

  • Java の外部プロセスが返って来ない場合の対処方法 - Qiita

    Java で外部プロセスを起動する際は ProcessBuilder クラスを使いますが、 たまに処理が戻ってこない場合があります。 そんな場合に原因として考えられるのは、標準出力または標準エラー出力にバッファが溜まってしまっているという理由です。 例えば以下のコードの場合、標準エラー出力のバッファがいっぱいになっていた場合は proc.getInputStream() から処理が返って来なくなります。 String[] cmds = {"./foo.sh"}; ProcessBuilder pb = new ProcessBuilder(cmds); Process proc = pb.start(); String str; BufferedReader brstd = new BufferedReader(new InputStreamReader(proc.getInputStre

    Java の外部プロセスが返って来ない場合の対処方法 - Qiita
  • prociostat.pl と visualize_prociostat.R で Linux のプロセスのボトルネックを分析する - ablog

    今日もモツ鍋を堪能されていた模様の [twitter:@hasegaw] さんが Linux のプロセスのアクティビティを追跡してグラフ化するツールを Perl + R で作られたということで早速使ってみました。 プロセスがユーザーモードでCPUを使えているのか、I/O待ちになっているのかといった傾向を分析することができます。Oracle DatabaseCPUを使えているのか、どんな理由で待機している(CPUを使えていない)か見ることができるよう実装されていますが、そんなものはないプログラムでも /proc ファイルシステムを参照してプログラムの外側からボトルネック分析が可能になります。素晴らしい! こんな感じのグラフができます。 ツール prociostat.pl プロセスのCPU使用率、I/Oバイト数、I/O待機時間*1を秒間隔でCSVに記録する Perl スクリプト*2 情報ソ

    prociostat.pl と visualize_prociostat.R で Linux のプロセスのボトルネックを分析する - ablog
  • なるほどUnixプロセス Rubyで学ぶUnixの基礎 を読んだ - ravelll の日記

    新人エンジニアとの読書会でシグナルの話が出た時に色々知識が曖昧なことに気づいたので読んだ。(Spyglass についてはまだ触っていない) 社内の別の読書会にこれの原著を読むものがあったんだけど、 当時 Ruby や UNIX について知識がなさ過ぎたり英語読むのに少しつらみがあったり そもそも途中から参加していなかった。覚えていたのはゾンビプロセスの語感と内容が重要そうだったってことくらい。 今回は英語学習より内容の速習を求めたので、翻訳版を読むことにした。 以下は読書感想文です。 プロセス、カーネル、システムコール このはプロセスとそれを取り巻く技術についてそれぞれかなり基礎的なことから書かれており、UNIX について然程知識がなくとも問題なく理解し読み進められる。 自身ではプロセスは親子関係やPIDについて知っている程度で、5章のファイルディスクリプタや 10章の終了コード、11章

    なるほどUnixプロセス Rubyで学ぶUnixの基礎 を読んだ - ravelll の日記
  • Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して

    しばらくLinuxネタが続く・・。 近いうちに最近出たJava8ネタを書いてみようと思います。が、もう少しLinuxネタにお付き合いください。 前回はsshdを対象に親プロセスをkillした場合の動作を確認した。 killされたプロセスの子プロセスは孤児プロセスとなり、カーネルによって自動的にinitプロセスの子として扱われる事を説明した。(この動作を「リペアレンティング」と呼ぶ) 今回はこの続き。 Linuxで作業していてCtrl+Cしてプロセスを終了した場合、フォアグラウンドのプロセスやその子プロセスも一緒に終了する。 ということは、子プロセスは孤児として扱われず、リペアレンティングされていないことになる。 今回の記事ではこの振る舞いの違い(リペアレンティングされるか否か)に着目し、kill -SIGINTコマンドとCtrl+Cの違いについて考えていく。 そもそもkillコマンドやCt

    Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して
    decoy2004
    decoy2004 2014/08/04
    『killコマンドは特定のプロセスにのみ送信するのに対し、Ctrl+Cはプロセスグループ全体にシグナルを送信している』
  • シェル・スクリプトの同期・並列実行(マルチスレッド処理っぽいこと) - それマグで!

    シェル・スクリプトで、マルチスレッド処理っぽく、複数プロセスを起動して、まとめて処理をして処理時間を稼ぎたい。 wait コマンド 複数プロセスを起動してバックグラウンドに回し、wait で処理終了を待つことが出来る convet *.png out.jpg #なに手を加えない場合 バックグラウンドで大量に起動して処理を待つ for i in *.png ; do convert $i $i.jpg & ; done wait wait をすると、複数起動したバックグラウンド・ジョブをすべて待つことが出来ます。 同時実行制御 CONCURRENT_COUNT=3 NUM_PROCESS=0 for name in *.png ; do NUM_PROCESS=NUM_PROCESS+1 convert $name $name.jpg & if ( ( $NUM_PROCESS >= $CO

    シェル・スクリプトの同期・並列実行(マルチスレッド処理っぽいこと) - それマグで!
    decoy2004
    decoy2004 2014/07/02
    『wait をすると、複数起動したバックグラウンド・ジョブをすべて待つことが出来ます。』
  • Linuxのしくみを学ぶ - プロセス管理とスケジューリング

    Linuxのしくみを学ぶ - プロセス管理とスケジューリング」公開ページ こちらのページはSoftware Design誌 2009年12月号の記事「Linuxのしくみを学ぶ - プロセス管理とスケジューリング」の公開ページです。 「ハイパーバイザの作り方」も公開中ですので、こちらも是非ご覧ください。 公開中の記事 HTML PDF ePub mobi Kindle 原稿データ 全ての原稿データはgithub上で公開されています。 Pull RequestやIssuesを通じて文章の誤り訂正や解説の追記、各フォーマットの表示の改善などのコントリビューションを受け付けています。 改善された記事は随時このページにアップロードしていきます。 記事に関するご質問 記事を読んで何かわからなかった点があったり、疑問に思ったことがあれば以下の連絡先に問い合わせてください。 Twitter: @syuu

    decoy2004
    decoy2004 2014/05/31
    『Software Design誌 2009年12月号の記事「Linuxのしくみを学ぶ - プロセス管理とスケジューリング」の公開ページです。』
  • 1