
No.6ベストアンサー
- 回答日時:
>find -inum 23993306
これだとエラーになると思いますが、エラーメッセージが出ませんでしたか?
>test.php がすでに終了していた場合はそのようになってしまうのでしょうか?
いえ、そういう事はありません。
iノード番号はファイルが存在していれば必ず存在しますから、消されていない限りiノード番号からファイルは特定出来ます。
例
%fstat -u user
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W
user fstat 9627 root / 2 drwxr-xr-x 512 r
user fstat 9627 wd / 472591 drwx--x--x 1536 r
user fstat 9627 text / 1130653 -r-xr-sr-x 15236 r
user fstat 9627 0 /dev 83 crw--w---- ttyp0 rw
<省略>
実行されたコマンドは、FDがtextのもの。
findの実行は、MOUNTが/で、INUMが1130653だから
%find / -inum 1130653
<パーミッションの関係で出るエラーは省略>
/usr/bin/fstat
個人的には、こういう手間を行うならlsofコマンドの方がいいとは思いますが。
>また、whoami と打つと、「www」と出るのですが、logname と打つと「root」と出ます。これらは別々のものなのでしょうか?質問が逸れていますがどうぞよろしくお願いいたします。
whoami → 実効ユーザ名
logname → ログイン名
rootでログインして、suあたりでwwwになっているとか。
ありがとうございます。
>これだとエラーになると思いますが、エラーメッセージが出ませんでしたか?
はい。Permission denied と出ます。
>個人的には、こういう手間を行うならlsofコマンドの方がいいとは思いますが。
結局なんども試したものの、パーミションのエラーがでてスクリプトを特定できませんでした。
lsofコマンドもディレクトリまでは分かるのですが肝心のファイル名が分からないため、どうしたものかと思っています。
しかし、簡単にプロセスを起動しているプログラムが特定できないことが分かっただけでもありがたく思います。
No.5
- 回答日時:
基本的にlsof、fstat共にプロセス情報を表示するコマンドではなくて、オープンされているファイルの情報を表示するコマンドです。
なので、プロセスがたくさんのファイルをオープンしているとその分表示されるのも多くなります。
lsofコマンド、fstatコマンドであるユーザがオープンしているファイルに絞りたい場合には-uオプションでユーザを指定すればいいです。
>COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
>httpd 82917 www cwd VDIR 157,131079 1536 10746765 /home/user/public_html/test
上記ですが、FDの項がcwdとあるようにカレントの作業ディレクトリになります。
スクリプトのファイルもオープンされているのでしたら、そちらも別に表示されていると思います。
>fstat とすると以下の項目が表示されました。ノード番号はINUMのことでよろしいでしょうか?
はい、INUMです。
fstatコマンド
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=m …§=0
ありがとうございます。
まず、テスト用のスクリプト(test.php)を走らせ、そのPIDを取得し、fstat でPIDのマッチする inode 番号を得、その番号で以下のようにしましたが、何も表示されませんでした。(23993306がINUM)
find -inum 23993306
test.php がすでに終了していた場合はそのようになってしまうのでしょうか?
また、whoami と打つと、「www」と出るのですが、logname と打つと「root」と出ます。これらは別々のものなのでしょうか?質問が逸れていますがどうぞよろしくお願いいたします。
No.4
- 回答日時:
>$ ps axuww | more
時絶対パス指定でコマンドを実行しているなら、それでパスまで表示されるでしょうが、コマンド名のみとか相対パス指定でコマンドを実行した時には分かりませんよね。
No.2で書いたlsofはFreeBSD標準のコマンドではないので、FreeBSD標準のコマンドだけでいうのであれば、1つのコマンドのみでというのは難しいかもしれません。
例えば、fstatコマンドあたりでオープンされているファイル(コマンド)のiノード番号とファイルシステムを調べて、findコマンドの-inum iノード番号でファイルを調べるという方法もあるかな。
ありがとうございます。
fstat とすると以下の項目が表示されました。ノード番号はINUMのことでよろしいでしょうか?
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W
また、ひとつのプロセス(PID)でものすごい数の行がリストされるのですが、これを限定させて表示させたりできるのでしょうか?
どうぞよろしくお願いいたします。
No.3
- 回答日時:
こんにちは。
僕は、手癖で、
$ ps axuww | more
といつもやっています。
深くオプションの意味は考えていませんが、、
パスとかも出ますよ。
ありがとうございます。テスト用のphpスクリプトを実行中に、「ps xuww | more」としたところ、そのスクリプトのプロセスが以下のように表示され、lsof とは違ったパスが表示されました。
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
www 97995 0.0 1.0 31780 20548 ?? S 2:51PM 0:00.01 /usr/local/apache/bin/httpd -DSSL
実行したのは、/home/user/public_html/test/test.php というスクリプトです。このスクリプトはテスト用に作ったのですが、ブラウザからアクセスすると、一定時間プロセスが起動しPIDを返すようにしています。
lsofでは/home/user/public_html/test までは表示されましたので、最後のtest.phpが表示できないものかと思っています。どうぞよろしくお願いいたします。
No.2
- 回答日時:
>あつかましい質問なのですが、プロセスを生成したスクリプトやプログラムの場所(パス)など一緒に表示できますでしょうか?
Ports/Packagesにあるlsofコマンド(sysutils/lsof)を使用するとか。
試しに、phpスクリプトを実行中にlsofコマンドを実行したところたくさんプロセスがリストされました。
その中で、そのphpのスクリプトと思われるものがあり、ディレクトリパス名が一致しているのですが、スクリプトファイル名が表示されません。これをファイル名も含ませることはできますでしょうか?
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 82917 www cwd VDIR 157,131079 1536 10746765 /home/user/public_html/test
No.1
- 回答日時:
FreeBSDに限らず、UNIX系OSではpsコマンドで起動しているプロセスを表示させる事が出来ます。
基本的にはpsコマンドを実行したユーザ(自分)のプロセスのみ表示されます。
-aオプションを指定する事によってpsコマンドを実行したユーザ(自分)とそれ(自分)以外のユーザのプロセスについても表示出来ます。
指定のユーザのプロセスのみ表示したい場合には、-Uオプションを使用すると指定したユーザのプロセスを表示出来ます。
オプションの指定方法は下記のページのマニュアルを参照してください。
psコマンド
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=m …
ありがとうございます。やってみると意外と簡単で、すごくシンプルで使いやすいという印象を受けました。
あつかましい質問なのですが、プロセスを生成したスクリプトやプログラムの場所(パス)など一緒に表示できますでしょうか?紹介して下さったページでは見つかりませんでした。
どうぞよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
linuxのインストール
-
Core 2 Duo の古いパソコンに最...
-
インストールできないですどう...
-
ubuntu(linux)のシャットダウン...
-
LinuxでWine使うとどのくらいWi...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
Linux のシェルスクリプトの強...
-
ubuntu が起動しない。
-
「/var/log」内のログの削除の...
-
bashでシングルクォート内の変...
-
ubuntuのシャットダウンが進ま...
-
Rasberry pi のオンボードNICの...
-
linuxサーバーのキャッシュをク...
-
Linuxでブートディスクの交換後...
-
ubuntuのターミナルで書いたコ...
-
ssl_request_logの必要性について
-
Windowsのローカルディレクトリ...
-
Ubuntu on Xorgのログインについて
-
VertualBox でのLinux Mint の...
-
ubuntuで デイスク/deb/loopと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
scpコマンドでリモートサーバの...
-
【ターミナル】MacBookにディー...
-
Illustratorのデータをまとめて...
-
DOSコマンドでのワイルドカ...
-
Windows10のRegSys32に登録され...
-
telnet,rlogin,rshの違いってな...
-
IBM漢字コードのSJIS変...
-
rcpコマンドについて、教えて!
-
コマンドでのコンピュータ名変...
-
DOSのAUTOEXEC.BATの書き方、等
-
cactiでグラフが表示されない
-
wgetの正規表現について
-
FTP接続中のコマンド実行結果を...
-
AIX ksh利用 grep 検索で マ...
-
linuxのreadコマンドについて
-
今年の経過日数 linixコマンド...
-
属性変更できないです。
-
Solaris rmコマンドをシェルで...
-
Linux9でのCUIの日本語表示につ...
-
lsコマンドで表示するファイル...
おすすめ情報