скрипт ksh порождает нежелательного ребенка с таким же именем - PullRequest
0 голосов
/ 28 января 2010

Итак .. Я использую KSH в Solaris8 довольно долго, но впервые получаю что-то вроде этого:

Я запускаю скрипт - назовем его splitCfg. Когда я вызываю pgrep -x splitCfg, я нахожу два экземпляра этого скрипта - основной и дочерний для моего скрипта (вывод из 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

1 Ответ

2 голосов
/ 29 января 2010

Если в вашем сценарии оболочки есть скобки, подоболочка может выполняться в отдельном процессе Unix, в зависимости от того, какая у вас версия ksh. Я думаю, что ksh88i (очень старая версия) все еще поставляется как системная оболочка в Solaris.

...