このエントリーをはてなブックマークに追加


プロセスIDによりプロセスごとの環境変数を確認する方法

稼働しているプロセスの環境変数を確認する方法を記します。


/proc/[PID]/environ により確認できる

proc周りの/proc/プロセスID/environで稼働中プロセスの環境変数の値などを確認することができます。

cat /proc/プロセスID/environ

以下、CentOS5上で稼働中のPostgreSQLの環境変数を確認してみます。

例)PostgreSQLの環境変数を確認してみる

以下にPostgreSQL(postmaster)の環境変数を確認する手順を記します。

  1. psコマンドとgrepコマンドでpostmasterのPIDを調べます。
    [sakura@centos ~]$ ps aux | grep postmaster | grep -v grep
    postgres  3746  0.0  0.0 154152  5160 ?        S    May31   0:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
     
  2. 上記の操作によりこの場合、PDが3746であることが確認できます。
     
  3. /proc/プロセスID/environをcatしてみる
  4. 一般ユーザーではアクセスできない旨のメッセージが表示されました。(Permission denied)
    [sakura@centos ~]$ cat /proc/3746/environ
    cat: /proc/3746/environ: Permission denied
  5. rootユーザにsu(スイッチユーザー)する。
    [sakura@centos ~]$ su -
    Password:
  6. rootユーザーにて/proc/プロセスID/environを再度catしてみる
    [root@centos ~]# cat /proc/3746/environ
    HOSTNAME=centosSHELL=/bin/bashTERM=linuxHISTSIZE=1000USER=postgresLS_COLORS=no=
    00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;3
    7;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.
    bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;3
    1:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31
    :*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=
    01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:MAIL=/var/spool/mail/postgresPATH=/us
    r/kerberos/bin:/usr/local/bin:/bin:/usr/binINPUTRC=/etc/inputrcPWD=/var/lib/pgs
    qlLANG=en_US.UTF-8SHLVL=1HOME=/var/lib/pgsqlLOGNAME=postgresCVS_RSH=sshPGDATA=/
    var/lib/pgsql/dataLESSOPEN=|/usr/bin/lesspipe.sh %sG_BROKEN_FILENAMES=1_=/usr/b
    in/postmaster
    [root@centos ~]#

以上、稼働中プロセスの環境変数を確認する方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:35