shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] script/daemon e impressão no terminal


From: Julio C. Neves
Subject: Re: [shell-script] script/daemon e impressão no terminal
Date: Tue, 2 Oct 2012 20:36:42 -0300

Cleberson,
o que caracteriza um daemon é o PPID do prg ser o init. Para conseguir isso
é necessário fazer:

nohup prg.sh &

e em seguida dar exit na sessão, qdo - por perder o pai - será adotado pelo
init, virando um daemon verdadeiro.

Qdo vc executa o nohup, prg.sh fica independente da sessão (e portanto do
terminal) e é por isso que tenta criar um arquivo chamado nohup.out para
passar as msgs que o prg.sh ou o sistema enviarem. Caso não consiga criar
esse arquivo no diretório corrente, ele será criado no seu home.

Abcs,
Julio

*
*



Em 2 de outubro de 2012 20:05, cleberson <address@hidden> escreveu:

> **
>
>
> Srs.,
>
> Ao executar o script abaixo como um daemon, a primeira execução mantem a
> saída do comando em primeiro plano(foreground), mas após realizar logoff e
> tentar realizar a finalização do processo a resposta esperada de termino de
> processo não é impressa na tela. Tem alguma forma de chamar/alterar a saída
> do processo para o novo terminal/sessão?
>
> Tem como durante a execução, o script controlar se fica
> foreground/background?
>
> Desde já agradeço a atenção!
>
> Att,
> Cleberson.
>
> # setsid ./teste.sh
> Rodando 0 vezes
> 13403
>
> Nova sessão:
> # kill -15 13403
> # ## Sem a reposta esperada
>
> Script teste.sh:
>
> #!/bin/bash
> # Script: teste.sh
>
> #----------------------------------------------------------#
> # INÍCIO >>> function control_c()
> #----------------------------------------------------------#
> function FN_control_c()
> {
> echo
> echo "#################################################"
> echo "## Encerrando o DAEMON $(basename "$0") !!!! "
> echo "#################################################"
> echo
> exit 0
> }
> #----------------------------------------------------------#
> #FIM >>> FN_control_c()
> #----------------------------------------------------------#
>
> USER_INTERRUPT=13 # Varável global para verificar a interrupção do usuário.
>
> trap FN_control_c $USER_INTERRUPT TERM INT HUP
>
> minhaparada="50"
> c="0"
> while true ; do
> echo "Rodando $c vezes "
> echo $$
> let c++
> sleep $minhaparada
> done
>
> exit 0
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]