LoginSignup
1
0

More than 3 years have passed since last update.

プロセスの実行ディレクトリをリストアップする

Last updated at Posted at 2020-05-17

実行環境

  • bash
  • zsh

概要

プロセスの番号を調べることがあるのですが、その場合に同じ起動コマンドで起動されたプロセスの場合、作業ディレクトリがどこなのかわからず、自分の求めているプロセス番号がどれなのかわからないことがあります。

ここではプロセス番号と作業ディレクトリを表示する方法についてまとめました。

実行コマンド

for pid in `ps aux | grep keyword1 |grep keyword2 | grep -v grep | tr -s ' ' | cut -d ' ' -f2`
do
  ls -l /proc/$pid/cwd;
  ps $pid
done

次に組み合わせたコマンドを説明します。

PID一覧の取得

プロセス一覧を取得

ps aux を使います。

ps aux

プロセスをフィルタ

grep を使ってほしいプロセスを絞り込みます。

grep keyword

キーワードが複数ある場合などはパイプで繋げばOKです。

grep そのものを除外するために grep -v grep も付け加えます。

フィールドの区切りを単一のスペースに変換

tr を使います。

tr -s ' '

PIDのフィールドを抽出

cut を使います。 スペースで区切った時の2番目のフィールドを抽出します。

cut -d ' ' -f2

ここまでをパイプで繋げて実行すると、ほしいプロセスのPID一覧が取得できます。

取得したPIDについて繰り返し処理

for を使って取得したPIDについての繰り返し処理を行います。

for pid in `ps aux | grep keyword1 |grep keyword2 | grep -v grep | tr -s ' ' | cut -d ' ' -f2`
do
  # procedure
done

作業ディレクトリの取得

for の中で ls -l /proc/$pid/cwd を実行します。

for pid in `ps aux | grep keyword1 |grep keyword2 | grep -v grep | tr -s ' ' | cut -d ' ' -f2`
do
  ls -l /proc/$pid/cwd
done

プロセス情報の表示

作業ディレクトリの一覧しか表示されませんから、プロセスについて再度表示します。
ps を使います。

for pid in `ps aux | grep keyword1 |grep keyword2 | grep -v grep | tr -s ' ' | cut -d ' ' -f2`
do
  ls -l /proc/$pid/cwd
  ps $pid
done

実行例

$ for pid in `ps aux | grep unic |grep master | grep -v grep | tr -s ' ' | cut -d ' ' -f2`; do   ls -l /proc/$pid/cwd;   ps $pid; done
lrwxrwxrwx 1 ec2-user ec2-user 0 May 17 02:41 /proc/2429/cwd -> /var/www/example1-prod/releases/20200504164325
  PID TTY      STAT   TIME COMMAND
 2429 ?        Sl     0:01 unicorn_rails master -c config/unicorn.rb -E production -D
lrwxrwxrwx 1 ec2-user ec2-user 0 May 17 02:24 /proc/27484/cwd -> /var/www/example2-prod/releases/20200517021644
  PID TTY      STAT   TIME COMMAND
27484 ?        Sl     0:02 unicorn_rails master -c config/unicorn.rb -E production -D
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0