0

だから..私はSolaris8でKSHをかなり長い間使用していますが、次のようなものを入手したのはこれが初めてです。

スクリプトを開始します-それをsplitCfgと呼びましょう。電話をかけるpgrep -x splitCfgと、このスクリプトの2つのインスタンス(メインインスタンスとスクリプトの子(psからの出力))が見つかります。

root 28069 25107  0 20:22:01 pts/10   0:00 splitCfg
root  4668 28069  0 20:22:50 pts/10   0:00 splitCfg

ご覧のとおり、最初のインスタンスは子の親です。ただし、メインスクリプトから作成されたサブプロセスはありません。ps、pgrep、またはptreeをもう一度呼び出すと、次のようになります。1.子プロセスがない、または2.新しい子プロセス

説明を探しています。私はインターネット全体を検索したと思うので、皆さんに貴重な時間をお願いする時が来ました:)

それはある種のKSHバグ(Solaris 8のかなり古いバージョンを使用していることに注意してください)ですか、それとも何かが足りないのでしょうか。単一のスクリプトで単一のPIDを作成し、終了時にそのままにしておく必要があることを理解しています。

ありがとう、Saperzasty

4

1 に答える 1

2

kshシェルスクリプトに括弧がある場合、使用しているバージョンによっては、サブシェルが別のUnixプロセスで実行される場合があります。ksh88i(非常に古いバージョンの)まだSolarisのシステムシェルとして出荷されていると思います。

于 2010-01-28T23:05:06.030 に答える