Bifurca um processo dentro de um script de shell bash

1

Eu tenho um script de shell simples como

#!/bin/bash

sh -c "sleep 60" &
exec sleep 120

Ao usar o comando pstree , encontrei algo como

'-sleep(11681)---sleep(11682)

O primeiro sono é devido ao sh -c , por isso, mesmo que eu tenha executado esse sono em segundo plano, agora ele é pai dos meus exec de sono.

Pergunta: Como desanexar o primeiro sono e fazer com que o pstree tenha algo como

 -sleep(11681)
 -sleep(11682)
    
por Ryan 17.06.2014 / 18:56

2 respostas

1

O primeiro sono já está separado. O que está acontecendo é que o sleep 60 é criado pelo shell que está executando o script, então o exec substitui esse shell pelo sleep 120 , então o sleep 120 agora é o pai do seu sleep 60 . Para tê-los no mesmo nível na saída pstree , simplesmente faça o background sleep 120 , assim como você faz o sleep 60 em vez de exec '.

    
por 17.06.2014 / 19:16
1

sleep 60 & sleep 120 & espera

    
por 27.07.2015 / 14:22