Script rodando full time em background

1. Script rodando full time em background

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 17/09/2010 - 20:46h

Estou tentando fazer um script para substituir o uso do Cron em uma tarefa, o usuario se autentica no hotspot, e esse script é executado pra ficar monitorando se o usuario ja desconectou, so que quando o usuario se eutentica a pagina fica carregando eternamente, tendo que atualizar pagina pra ai sim conseguir navegar. No CGI que o usuario se autentica eu chamo ele assim:
/partition/./monitormamento.sh&
ja tentei tambem
/partition/./monitormamento.sh& 1>/dev/null 2>/dev/null
mais da no mesmo, fica esperando o script finalizar pra liberar a pagina..
o script é este:

#!/bin/sh
#monitoramento para easycaptive
#daniel.uramg 16/09/10
. /etc/coyote/coyote.conf
FILEFUNC="/usr/local/easycaptive/bin/./easycaptive"
VAR="1"

ping_util() {
varping=`arping -b -f -c20 ${1} -i $IF_LOCAL | grep -c "Received 1 reply"`
echo $varping
}

while [ $VAR = "1" ] ; do
online=$(ping_util ${1})
if [ $online != "0" ]; then
#data=`date`
#echo "$data - ainda on ${1}" >>/monit
sleep 60
else
VAR="0"
#data=`date`
#echo "$data - drop ${1}" >>/monit
$FILEFUNC DROP ${1}
fi
done
exit

Obrigado


  


2. Re: Script rodando full time em background

Vinicius Mello
vmmello

(usa Slackware)

Enviado em 17/09/2010 - 22:03h

Se tiver o programa screen instalado, dá pra executar:

screen -dmS abc /partition/./monitormamento.sh

(onde "abc" pode ser qualquer string)

Assim o programa é executado dentro de um screen em background e a execução do CGI pode terminar sem esperar.

Caso contrário, dá pra usar um fork() no CGI e executar com o processo filho. Dá uma olhada na documentação da função fork() da tua linguagem CGI.

Pelo tipo de uso, ao invés de rodar um script por usuário, o melhor seria ter o script de monitoramento rodando o tempo inteiro, e quando o usuário fizesse login o CGI registrasse o login num banco de dados pro monitoramento ler, ou enviasse uma mensagem por socket para o processo de monitoramento.


3. Re: Script rodando full time em background

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 18/09/2010 - 01:03h

Pra vc rodar o script em background, vc tem q colocar da seguinte forma:

# /partition/monitormamento.sh & 2>&1 /dev/null

Assim dá certo.


4. Re: Script rodando full time em background

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 20/09/2010 - 12:11h

Pessoal, minha distro não tem o screen nem o fork, e tambem não deu certo com & 2>&1 /dev/null, fica na mesma so carreando, ai eu mando Parar e Recarregar a pagina, ai vai..

Tenho alguma outra alternativa pra tentar ou seria mais facil compilar o scren ou fork pra funcionar aqui?

Obrigado


5. Re: Script rodando full time em background

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 23/09/2010 - 12:35h

No Google Chrome funcionou perfeitamente colocando
/partition/./monitoramento.sh $REMOTE_ADDR& 2>&1 /dev/null

Já no Firefox ou IE não adinata fica carregando sempre


6. Re: Script rodando full time em background

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/10/2010 - 19:50h



if [ $ONLINE != "0" ]; then
NORST=$(sleep 1m) &
else
$FILEFUNC DROP ${1}
fi



7. Utiliza nohup

Douglas
koga021

(usa Ubuntu)

Enviado em 23/05/2011 - 10:51h

usa o nohup
nohup script &






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts