Júlio, essa dica já matou a charada. O que eu estava fazendo errado era que
no mesmo script eu enviava a stdout e stderr pro logger e/ou fechava
stdout, e com isso por algum motivo o nohup não desanexava o processo.
Pra explicar melhor minha situação e talvez ter uma outras sugestões dos
colegas da lista, tenho um script que é acionado pelo
/lib/systemd/systemd-udevd, mas preciso do resultado deste script para
executar outros comandos. Então o processo filho deste script é enviado
para background na intenção do script pai terminar antes. Por isso o nohup
ajudaria, desanexando do processo pai. O nohup funcionou, mas o script do
processo pai ainda fica aguardando a finalização do processo filho mesmo
enviando para background e tendo seu processo desanexado.
A dúvida é como fazer um processo chamar um processo filho e terminar antes
da conclusão do filho?
Basicamente isto:
#script1
/usr/bin/nohup ./script2 &
exit 0
#script2
sleep 30
outroscomandos
à possÃvel isto? Achei q basicamente era só mandar pra background, mas
estou quebrando a cabeça ainda
Att,
Robson Alexandre
Post by 'Julio C. Neves' ***@gmail.com [shell-script]Poizé Robson, da outra vez que te respondi estava em um táxi, no celular
e, por isso, não dava para entrar muito em detalhe. O que vc não deixou
muito claro para mim é quem esta em BG o pai, o filho ou ambos.
A caracterÃstica do nohup é que qdo o pai morre ele é adotado pelo init e
para usar o nohup vc tem de se basear nisso.
Em Setembro/Outubro darei um treinamento de 40 horas no RJ e em BSB
sobre Programação em Shell, com imersão em Expressões Regulares e
dicas de YAD. Para mais detalhes acesse goo.gl/JkWmBx
Em Dezembro um curso com este mesmo conteúdo/carga horária será
lecionado em SP. Maiores detalhes neste site.
<https://www.4linux.com.br/curso/programacao-em-shell-script>
Abcs,
Julio
*Damos treinamento em sua empresa por **um preço, *
*no mÃnimo, 50% mais barato que qualquer curso,*
*com certificado e nota fiscal.*
ââ
Nosso time de instrutores *in company* é formado somente por
â
â
autores
â â
â
de
Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Robson Alexandre ***@gmail.com [shell-script]Mestre Júlio,
realmente esse é meu problema.
Tentei
1
nohup bash -c 'sleep 5; comandos;' &
2
nohup bash -c 'sleep 5; comandos;' &
disown
exit 0
3
nohup ./script2 &
e em todos eles o processo filho não desanexa do script principal q está
chamando-o, e o filho termina junto com o pai antes de terminar a execução.
Maik, tentei destas maneiras que vc também sugeriu, porém sem sucesso. TÎ
achando isso estranho pois já fiz outros scripts com o nohup sem problemas.
Att,
Robson Alexandre
Post by maik alberto ***@hotmail.com [shell-script]Bom dia!
O problema não ficou bem entendido, mas... acredito que o problema não
cat teste1.sh
#!/bin/bash
um
(
sleep 5
dois
)&
cat teste1.sh
#!/bin/bash
um
./teste2.sh &
ou
#!/bin/bash
um
source teste2.sh &
cat teste2.sh
#!/bin/bash
sleep 5
dois
------------------------------
*Enviado:* quinta-feira, 24 de agosto de 2017 22:57
*Assunto:* Re: [shell-script] Delay em background
Fala Robson, não estou certo de ter entendido o seu problema, mas vc já
experimentou usar o cmd nohup qdo botar o processo em background?
Boa noite caros shelleiros,
Estou montando um acesso remoto utilizando rdesktop e qdo o usuário
conectar qualquer dispositivo usb, ou cdrom pretendo disponibilizar essa
conexões no acesso remoto também.
Para tanto estou monitorando através do udev e disparo um script toda
vez q houver essas ações.
Então envio para background o comando rdesktop atualizado com os pontos
de montagem, mas com um delay de 3 a 5 segundos, que é o tempo necessário
para montar os dispositivos e torná-los acessÃveis.
Meu problema é o seguinte, o comando atualizado não roda com o delay
necessário. Somente roda sem delay, e aà não dá certo o sync das coisas.
Meu script
(
sleep 5
killall -HUP rdesktop
rdesktop "params atualizados"
) &
Redigindo o e-mail agora me ocorreu q este subshell não termina a
execução por que o processo pai deve estar morrendo e matando junto o
subshell.
Algum dos senhores poderia dar alguma dica ou mesmo solução alternativa
Atenciosamente
Robson Alexandre
--
Atenciosamente
Robson Alexandre
--
Atenciosamente
Robson Alexandre
--
Atenciosamente
Robson Alexandre