dois processos estão listados para um shellscript?

dois processos estão listados para um shellscript?

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

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

Quando executo o shell script assim,

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

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?

Responder1

Acabei de recriar o que você tem aqui e substituí do something boring...-lo sleep 10000e isso não aconteceu. Acredito que você esteja fazendo algo que usa fork() ou clone() para criar um processo filho. Eu suspeitava que o nohup executasse o processo como um processo filho, mas não parece ser o caso.

Responder2

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 mysh.sh dentro do script? Essa é a única maneira pela qual eu poderia pensar que isso aconteceria.

informação relacionada