Discussion:
[shell-script] Delay em background
Robson Alexandre alexandrerobson@gmail.com [shell-script]
2017-08-24 22:39:35 UTC
Permalink
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
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2017-08-25 01:57:15 UTC
Permalink
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?

Em 24 de ago de 2017 19:39, "Robson Alexandre ***@gmail.com
[shell-script]" <shell-***@yahoogrupos.com.br> escreveu:



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
maik alberto maik.alberto@hotmail.com [shell-script]
2017-08-25 11:53:05 UTC
Permalink
Bom dia!


O problema não ficou bem entendido, mas... acredito que o problema não está no sleep dentro do subshell, testando:


cat teste1.sh


#!/bin/bash
um
(
sleep 5
dois
)&


Uma alternativa:


cat teste1.sh


#!/bin/bash
um
./teste2.sh &

ou


#!/bin/bash
um
source teste2.sh &

cat teste2.sh

#!/bin/bash
sleep 5
dois
________________________________
De: shell-***@yahoogrupos.com.br <shell-***@yahoogrupos.com.br> em nome de 'Julio C. Neves' ***@gmail.com [shell-script] <shell-***@yahoogrupos.com.br>
Enviado: quinta-feira, 24 de agosto de 2017 22:57
Para: shell-***@yahoogrupos.com.br
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?

Em 24 de ago de 2017 19:39, "Robson Alexandre ***@gmail.com<mailto:***@gmail.com> [shell-script]" <shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br>> escreveu:


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
Robson Alexandre alexandrerobson@gmail.com [shell-script]
2017-08-25 13:31:51 UTC
Permalink
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
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2017-08-25 15:04:41 UTC
Permalink
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
*Best Sellers​ ​*​laureados ​sobre os temas. P. exemplo:

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
Robson Alexandre alexandrerobson@gmail.com [shell-script]
2017-08-25 18:50:06 UTC
Permalink
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
Continue reading on narkive:
Loading...