ls -l /proc/17301504
私はコマンドへのフルパスを提供するexeのいずれも試していません。 LinuxのようにAix 5以降でコマンドのフルパスを取得する方法はありますか?
/proc/17301504/object
コマンドと同じチェックサムを持ちますが、フルパスを提供しない.outがあります。
ベストアンサー1
ファイル/proc
システムは、本質的にオペレーティングシステム間で移植可能ではない。一部の Unices はまったく存在しません。
AIX のファイル・システム・レコードは/proc
次のとおりです。https://www.ibm.com/support/knowledgecenter/en/ssw_aix_61/com.ibm.aix.files/proc.htm
a.out
サブディレクトリのファイルについてはobject
次のように言います。
[...] 名前は、
a.out
実行中のプロセスのテキストに関連する実行可能ファイルの同義語としてディレクトリに表示されます。この
object
ディレクトリを使用すると、制御プロセスは、プロセスが最初にこれらのファイルへの特定のパス名を取得することなく、オブジェクトファイルと共有ライブラリ(シンボルテーブルを含む)にアクセスできます。
これはa.out
、その構造内のファイルにアクセスすることが望む操作とほぼ反対であることを意味します。これにより、ユーザープログラムはプロセスのフルパスを知らなくてもプロセスの実行可能ファイルにアクセスできます。
AIXには実行可能ファイルの基本名を含む構造もありますが、やはり/proc
それはあなたが興味を持っているようなものではありません。
プロセスは独自の0番目のコマンドライン引数(に示されているプロセス名ps
)を設定できるため、ps
フルパスを使用して実行されても、usingは実行中の実行可能ファイルの絶対パスを見つけるための信頼できるソリューションではありません。
あなたは何ですかできるdo は inode で実行ファイルを探します。
これを行う方法の例は、現在の質問に対する回答で説明されています。AIX 5以降でPIDで実行可能ファイルパスを識別する方法」。
この情報を取得するために問い合わせる必要がある理由を自分に尋ねることをお勧めします。走るスクリプトやプログラムを研究すると、どの外部ユーティリティを呼び出すかが明確になることが多いからです。