dois processos são listados para um shellscript?

1

Eu tenho um script de shell que é um pouco simples.

#!/bin/sh
do something boring...

Quando executo o script de shell assim,

$ nohup sh mysh.sh > /null/dev/ 2>&1 &

Eu vejo que há dois processos listados.

$ ps -ef | grep mysh
... xxxxx 1     ... sh mysh.sh // same xxxxx
... yyyyy xxxxx ... sh mysh.sh // same xxxxx

Isso é normal?

    
por Jin Kwon 17.08.2014 / 07:01

2 respostas

1

Eu apenas recriou o que você tem aqui e substituiu do something boring... por sleep 10000 e não aconteceu isso. Eu acredito que você está fazendo algo que usa fork () ou clone () para criar um processo filho. Eu suspeitava que o nohup executava o processo como um processo infantil, mas esse não parece ser o caso.

    
por 17.08.2014 / 07:53
1

Como você pode ver, yyyyy é o processo filho de xxxxx. É perfeitamente normal que o mesmo script de shell seja executado dentro de "mysh.sh", o que resultará em tal cenário.

Você está invocando direta / indiretamente o mysh.sh dentro do script? Essa é a única maneira que eu poderia pensar que isso acontecerá.

    
por 17.08.2014 / 08:10

Tags