2016-07-07 10 views
1

非常に長いシェルスクリプト(24時間以上実行)があります。 非常に簡単なスクリプトです。これは、ディレクトリからxmlファイルを読み込み、ファイル内容の操作をsed実行するだけです。ディレクトリには1百万のxmlファイルがあります。PSコマンドで実行中のプロセスが表示されない

私のスクリプト名は、私は、コマンド

ps -ef | grep "runDa*" 

次実行すると、その後いつか私は

username 34535 1 48 11:42:01 - 224:22 /usr/bin/ksh ./runDataManipulation.sh 

としての私のプロセスを参照してくださいしかし、私は後にまったく同じコマンドを実行した場合runDataManipulation.sh

のようなものです数秒後、私は上記のプロセスを全く見ません。

私のプロセスは常に実行されているので、psコマンドは常にプロセスを表示することを期待しています。

私は、いつか私が

username 34535 1 51 11:42:01 - 229:22 [ksh] 

ような結果を参照..

ps -ef | grep 34535 

のように私のスクリプトのプロセスIDにgrepをすればいつか私が

username 45678 34535 0 14:12:11 - 0:0 [sed] 

ような結果を参照私の主な質問は...なぜ私は自分のプロセスが表示されませんgrep私のPRスクリプト名を使用しています。私はAIX 6.1を使用しています。

+0

'runDataManipulation.sh'スクリプトの内容が、プロセスリストを変更するには何かをしているに違いないので、それを見ると便利です。 AIXでは '* argv []'(C言語で)の内容を変更でき、変更がプロセスリストに反映されることは注目に値します。すべてのUnix OSがこれを許可しているわけではありません。 –

答えて

0

私は、1つのスクリプトが別のプロセスでスクリプトを生成しているように見えます。

下のpsコマンドの結果を見ると、最初の行にプロセスID 34535が表示されます。これは主ID(親ID)です。

名34535 1 51 11時42分01秒 - 229:22 [kshの】

この工程順で他の処理をオフに発射され、これは親プロセスのIDを気付か、以下見ることができる(34535)次の行に記載されています。最初の番号はメインプロセスIDで、2番目の番号は呼び出しプロセスです。あなたのスクリプトがまだ実行されている場合は、常にいくつかの結果が表示されるはずですsedコマンドを含めるようにpsコマンドを変更した場合

名45678 34535

+0

ありがとうございます。私のスクリプトはsedコマンドの新しいプロセスを生成し、新しいsedプロセスは新しいpidを持ち、そのppid(親pid)は私のメインスクリプトpid(34535)を持つことを完全に理解しています。しかし、私の親プロセスは新しいプロセスを生成するときには死ぬことはないので、私のメインプロセス(runDataManipulation.sh)がps -efの出力に現れると常に期待しています。それは私の主な質問でした。なぜなら、私の親プロセスは、まだ実行されているときにps -efコマンドの出力に現れません。 – RaksJ

関連する問題