タグ

processに関するymm1xのブックマーク (14)

  • プロセスの適切な扱い方を再確認した - えいのうにっき

    プロセスの基礎再確認シリーズもこれで3つめ。 Unixプロセスとリソースの基礎を再確認した - えいのうにっき プロセスとの情報のやりとりについて再確認した - えいのうにっき ここまで見てきた間でも、ターミナルから irb を起動したり、Ruby コードから system メソッドを呼び出したりすることで子プロセスを扱ってきた(結果的に)けれど、自らの手で意図して子プロセスを作り出す、ということはしてこなかった。 今回は、子プロセスのメリットやその作り方、扱い方を中心に再確認したもののメモ、という形になる。項目的には以下。 fork で子プロセスを作る fork が高速なワケ fork で作った子プロセスを待つ 子プロセスの面倒を見る fork で子プロセスを作る fork(2) システムコールを使うことで、実行中のプロセスから新しいプロセスを生成することができる。 生成されたプロセスは

    プロセスの適切な扱い方を再確認した - えいのうにっき
  • Linuxのしくみを学ぶ - プロセス管理とスケジューリング

    プロセスとマルチタスクの実現 Linuxは、多数のプロセスを同時に動作させる事が出来るマルチタスク環境を実現しています。 psコマンドやtopコマンドを実行しプロセスのリストを取得すると多数のプロセスが実行中である事がわかります。 また、これらのプロセス全てが同時に平行して動作しているように見えます。 これはどのようにして実現されているのでしょうか。 一般的に、1つのプロセッサは同時に複数のプログラムを実行する事が出来ません1。 そこで、マルチタスクをサポートするOSでは複数のプロセスを非常に短い時間ずつ切り替えながら実行する事で、体感上は複数のプロセスが同時に実行されているように見せています(図1)。 このような仕組みを実現する為にどんな機能がカーネルへ実装されているのか順に見ていきましょう。 プロセスの切り替え CPU上で処理中のデータを失う事なく現在のプロセスから別のプロセスに切り替

  • 【Ruby on Rails】非同期処理についてその②。 〜マルチスレッドとかマルチプロセスを実装してみた〜 - 訳も知らないで

    業務で非同期処理の実装が必要となったので、 前回ぼんやりマルチスレッド、マルチプロセスについて調べてみたのですが… 両方軽く実装してみたのでメモ。 実際に実装してみたところ、マルチプロセスでもマルチスレッドでも 処理時間自体は短縮されたのですが、 マルチプロセスだとメモリはうしメモリ空間?を共有してくれないので スレッドのほうで実装してみました。 (マルチスレッドで十分なときはそれでいいってことかな?) 〜検証環境〜 Rails:3.2.11 ruby:1.9.3p392 Railsで普通に実装 マルチスレッドで実装 〜リファレンス〜 class Thread 〜とても参考になりました!〜 ActiveRecordを複数スレッド環境で利用する - tech.recompile.net 処理内容はDBからUserのid取ってきているだけです。 threads = [] 10.times.w

    【Ruby on Rails】非同期処理についてその②。 〜マルチスレッドとかマルチプロセスを実装してみた〜 - 訳も知らないで
  • How can I capture the stdout from a process that is ALREADY running

    I have a running cron job that will be going for a while and I'd like to view its stdout. I don't know how important the fact that the process was started by cron is, but I figure I'd mention it. This is on OSX so, I don't have access to things like... /proc/[pid]/..., or truss, or strace. Suggestions of executing with IO redirection (e.g. script > output & tail -f output) are NOT acceptable, beca

    How can I capture the stdout from a process that is ALREADY running
  • Mac OS Xには/procが無いのでsysctl使う - $ cat /var/log/shin

    Linuxにはprocfsという"/proc"以下にシステム情報をファイルで配置してくれる仮想ファイルシステムがあり、CPUやメモリやプロセスその他もろもろの情報を調べるときに重宝します。 一方、Mac OSもといDarwinは、BSD系をベースにしており、またSUSによるUNIX認定を受けていますが、procfsは無いんですね。どうもprocfsはSUSの要件に入っていないようです。 もっとも、procfsが無くても、CPUのコア数とかメモリ容量とか調べるぐらいなら、アップルメニューから「このMacについて」を押せば概要が見れますし、もっと見たければ「詳しい情報...」を押せばその名の通り詳しい情報が出ますし、さらにもっと見たければ「システムレポート」を押せば「システム情報」というアプリが起動してハードウェアの詳細情報を全部見れます。システム情報アプリ(System Informatio

    Mac OS Xには/procが無いのでsysctl使う - $ cat /var/log/shin
  • Get list of open files (descriptors) in OS X

    I would like to get a list of open files in a process on os x (10.9.1). In Linux I was able to get this from /proc/PID/fd. However I'm not sure how to get the same on OS X. I found that the procfs is not present on the OS X (by default. possible implementations present, but I do not want to go that way). So how do I get (natively) the list of open files in a process on OS X. One way is lsof. is th

    Get list of open files (descriptors) in OS X
  • ptraceで他プロセスの出力を読み取るRustライブラリを作ってみた - Qiita

    はじめに システムコールのptraceを使うと他プロセスの呼ぶシステムコールを覗き見ることが出来ます。 これを使って実行中の他プロセスの標準出力や標準エラー出力を読み取るライブラリを作ってみました。 使い方 std::io::Readを実装しているので 通常のファイルIOやネットワークIOと同じように扱えます。 extern crate nix; extern crate proc_reader; use nix::unistd::Pid; use proc_reader::ProcReader; use std::process::Command; use std::io::Read; use std::time::Duration; use std::thread; fn main() { // 読み取り先のプロセスを生成 let mut child = Command::new("s

    ptraceで他プロセスの出力を読み取るRustライブラリを作ってみた - Qiita
  • Linuxプロセスの起動時刻を調べる方法 - Qiita

    Help us understand the problem. What is going on with this article?

    Linuxプロセスの起動時刻を調べる方法 - Qiita
    ymm1x
    ymm1x 2018/05/07
    “ps -eo lstart,pid,args | grep ntpd”
  • コマンド:exec: UNIX/Linuxの部屋

    コマンド exec 現在実行中のシェルに代わり、指定したコマンドを実行する。実行中のシェルのリダイレクトを設定する 最終更新 2019-01-27 UNIX/Linux の exec コマンドは、現在実行中のシェルに代わり、指定したコマンドを実行する sh・bash・csh・tcsh などの内部コマンド (組み込みコマンド・ビルトインコマンド) である。シェルスクリプトから異なるコマンドを実行する際に、プロセス数を抑えてシステムリソースを節約する目的で使用される。また、sh・bash においては実行中のシェルのリダイレクトを変更する。

    コマンド:exec: UNIX/Linuxの部屋
  • How to get the process id of a bash subprocess on command line

  • bash で,サブシェルが起動される条件 : DSAS開発者の部屋

    今回は少々マニアックというか,重箱の隅的お話です. bash(1) には,複数のコマンドをまとめたり,コマンドの実行結果をコマンドラインに取り込むための記法が複数あります.それらのコマンドを実行するために,bash は必要に応じてサブシェルを起動しますが,どういう記述をした際にサブシェルが起動されるのか,いまいちはっきりしなかったため,実際に試してみました.今回試したのは,( ), $( ), { }, <( ) です. を実行して,ps コマンドの親プロセスがどれになっているかで確認しています.bash が設定する $PPID 変数を見ないのは,変数の展開をどのシェルがするかに依存するために,確認しにくいからです.ps コマンドを --forest オプション付きで単純に起動すると $ ps --forest PID TTY TIME CMD 20218 pts/18 00:00:00

    bash で,サブシェルが起動される条件 : DSAS開発者の部屋
  • メモリを使いすぎたPHPから無理やり解放させる - Qiita

    環境:CentOS7 + apache2.4(prefork) + PHP5.4 現象 PHPの処理が終了してもメモリの使用量が回復しない画面(処理)がある。 MaxRequestsPerChildに達するとapacheのプロセスが終了してメモリ使用量も回復するが、特定の画面だけでその現象が発生しているため、時にはMaxRequestsPerChildに達する前にサーバーのメモリを使い切ることがある。 というか、複数プロセスあるんだから、普通はそうだよね。 ぶっちゃけメモリリークなんだろうけど、発生個所が曖昧なのと、特定環境でのみしか発生しないため、調査が難航。 理想 PHP処理が終了したら、PHPが使ったメモリを解放する。 現実 unsetや循環参照の怪しそうなところを潰してみたけれど、環境によって発生コードが異なっていて、そもそもの根原因がわからない状態なので、どこまで対応すれば完了

    メモリを使いすぎたPHPから無理やり解放させる - Qiita
  • 開いているファイルのプロセスを特定(lsofコマンド) - Qiita

    lsofコマンドの使い方です。 lsofコマンドは、、、 PortやPID、プロセス名からファイルがオープンしている情報を表示するコマンド。 よく利用する場面 「netstat -an |grep LISTEN 」とかでListenしているPortを調べてそのPortが何のプロセスとかで動いているのかとかを確認するのに使っています! 使い方サンプル % lsof /var/log/system.log COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME tail 97529 USERNAME 3r REG 1,2 498299 12085861 /private/var/log/system.log

    開いているファイルのプロセスを特定(lsofコマンド) - Qiita
    ymm1x
    ymm1x 2016/02/18
    こりゃ便利
  • 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プロセスグループを理解する | ギークを目指して
  • 1