Article 380 of fj.sys.news: Path: news2.sra.co.jp!katsu From: katsu@sra.co.jp (WATANABE Katsuhiro) Newsgroups: fj.sys.news Subject: Re: ps command on newsos4.2.1r Date: 7 Oct 1998 06:16:56 GMT Organization: Software Research Associates, Inc., Japan Lines: 30 Message-ID: <6vf10o$m2a$1@sranhh.sra.co.jp> References: <6kjtog$7au$1@alice.lb.u-tokai.ac.jp> NNTP-Posting-Host: sras49.sra.co.jp In-reply-to: Mat-Lab's message of 28 May 1998 14:53:04 GMT Originator: katsu@sras49 Xref: news2.sra.co.jp fj.sys.news:380 あまりのフォローの遅さが議論の妨げになっていたらごめんなさい。 記事 <6kjtog$7au$1@alice.lb.u-tokai.ac.jp> で、 matu@lb.u-tokai.ac.jp (Mat-Lab) さんいはく > NEWSOS4.1.2Rの上でpsコマンドの様なものを作りたいのですが、 > どうもうまく行きません。 > 下のような物になって来たのですが、コマンド名は取り出せても > コマンドラインを取り出す事が出来ないのです。 取り出せた「コマンド名」は、u.u_comm (accounting に使われる)で、 execve(2) の第1引数の basename に対応してますね。欲しい 「コマンドライン」は、第2引数の方ということなのでしょう。 後者は、ユーザー空間のスタックを漁らねばなりません。そこが swap へ page out されている可能性を考慮しなければならず、簡単ではありません。 ps(1) がどのように実装されるかは、sps 等のソースが参考になります。 ps, sps, ... は当然 OS に依存した実装になってますが、sps の NEWS-OS 4.X 用のパッチ ftp://ftp.sra.co.jp/pub/cmd/sps/sps2-sony.patch.gz というのがあります。まさに「コマンドライン」を取り出すコードも 含まれてました。 あと、元記事ののソースを見て気が付いたのですが、zombie processes (対応する user 構造体が存在しない)については、user 構造体を 読まないようにすべきでしょう。 -- 渡邊克宏@SRA