psを使用して実行中のプロセスが表示された場合、実行可能ファイルを見つけるにはどうすればよいですか?


11

を使用して実行中のプロセスを確認できる場合ps -e、それを起動したファイルを見つけるにはどうすればよいですか?


2
これはどんなOSですか?Linux、BSD、Solaris ...
Patrick

Linux ...しかし、Unixを越えたソリューションを歓迎します。
インター

回答:


15

Linuxの場合:PIDがわかっている場合は、そのファイルのcmdlineファイルをcatできます。例えば:

cat /proc/PID/cmdline

プログラムの開始後にバイナリが移動された場合、これはおそらく失敗します。

そしてもちろん:

lsof -n | grep PID | grep ' txt '

そして:

ls -la /proc/PID/exe

これは、実行可能ファイルへのシンボリックリンクです。


1
/proc/PID/cmdlineは改行文字がないので、おそらくのようなことをしたくなるでしょうcat /proc/PID/cmdline ; echo ''
キーストンプソン

あなたも、より多くのような精巧なものをお勧めしますので、実際には、引数を分離NUL文字を持っているtr '\0' ' ' < /proc/PID/cmdline ; echo ''
キース・トンプソン


0

他の回答の方法(lslsofまたはcat)はどれも私にとってはうまくいきません。私が行った場合:

$ nano test.txt

これは私の勝者です:

$ pgrep -f -l test
3074 nano test.txt

または、プログラミングで使用するPIDのみを取得するには、次のようにします。

$ pgrep -f test
3074

Kali Linux v1.0.6(Debianベース)でテスト済み。
単純なと比較してls、私はそれがそれほど移植可能な解決策ではないことを認めなければなりませんが、少なくともそれは機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.