Fórum Ubuntu Linux - PT
20 de Maio de 2013, 01:44 *
Olá, Visitante. Faça o login ou registre-se.
Perdeu o seu e-mail de ativação?

Login com nome de usuário, senha e duração da sessão
Notícias: Atualização no plugin de busca para Firefox e Internet Explorer.
 
   Home   Ajuda Regras Pesquisa Login Registre-se  
Anúncios
Páginas: [1] 2   Ir para o fundo
  Imprimir  
Autor Tópico: [Resolvido]Start e Stop em scritp com a inicialização?  (Lida 1007 vezes)
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« em: 09 de Agosto de 2012, 15:30 »

Fala pessoal.

Estou com o seguinte problema: eu tenho um script que executa um .jar e gostaria de fazer ele ser rodado quando o sistema sobe.
Acompanhando a explicação do blog, fiz o seguinte:
Coloquei o meu script em /sbin e em /etc/init.d

Rodei o comando
Código:
sudo update-rc.d daemonXMLTVScheduler defaults 99
Me gerou as seguintes entradas:
$ ls -l /etc/rc?.d/*daemon*
lrwxrwxrwx 1 root root 30 Ago  9 15:20 /etc/rc0.d/K99daemonXMLTVScheduler -> ../init.d/daemonXMLTVScheduler
lrwxrwxrwx 1 root root 30 Ago  9 15:20 /etc/rc1.d/K99daemonXMLTVScheduler -> ../init.d/daemonXMLTVScheduler
lrwxrwxrwx 1 root root 30 Ago  9 15:20 /etc/rc2.d/S99daemonXMLTVScheduler -> ../init.d/daemonXMLTVScheduler
lrwxrwxrwx 1 root root 30 Ago  9 15:20 /etc/rc3.d/S99daemonXMLTVScheduler -> ../init.d/daemonXMLTVScheduler
lrwxrwxrwx 1 root root 30 Ago  9 15:20 /etc/rc4.d/S99daemonXMLTVScheduler -> ../init.d/daemonXMLTVScheduler
lrwxrwxrwx 1 root root 30 Ago  9 15:20 /etc/rc5.d/S99daemonXMLTVScheduler -> ../init.d/daemonXMLTVScheduler
lrwxrwxrwx 1 root root 30 Ago  9 15:20 /etc/rc6.d/K99daemonXMLTVScheduler -> ../init.d/daemonXMLTVScheduler

Mas, não consigo visualizar o meu "processo" com o comando ps aux.

Alguém pode me ajudar?

O conteúdo do meu script é:
Citar
#!/bin/bash

java -jar daemonXMLTVScheduler

==================================================

Eu sei que não é um serviço, mas, gostaria de subir esse script com o servidor e não quando um usuário logasse. Infelizmente só conheço essa maneira.
Até como indica nesse tópico: http://ubuntuforum-br.org/index.php?topic=64151.0
« Última modificação: 14 de Agosto de 2012, 18:41 por bred81 » Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« Responder #1 em: 09 de Agosto de 2012, 16:50 »

Identifiquei um erro até agora:
O scritp, para funcionar, deve estar da seguinte maneira:
Citar
$ cat /etc/init.d/daemonXMLTVScheduler.sh
#! /bin/sh

### BEGIN INIT INFO
# Provides:          xmltvscheduler
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start parser at boot time.
# Description:       Start parser at boot time.
### END INIT INFO

java -jar /home/fred/Downloads/xmltvscheduler.jar

exit 0

O problema agora é que não está matando o processo. Com o K99daemonXMLTVScheduler não deveria ser a primeira coisa a morrer?
Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« Responder #2 em: 09 de Agosto de 2012, 18:19 »

Mais uma informação:
Removi dos runlevels (tá certo isso?) 0, 1 e 6 e ele está desligando o sistema, mas não está matando o processo.

Ficou o seguinte:
Código:
# update-rc.d daemonXMLTVScheduler.sh start 55 2 3 4 5 .

Ele dá warning de que não existe o stop.

Pergunta: Porque não funciona?
Eu tinha setado o seguinte:
Código:
# update-rc.d daemonXMLTVScheduler.sh start 55 2 3 4 5 . stop 80 0 1 6 .
Fiz dessa maneira porque percebi que nenhum processo era morto antes de alguns que considero principais para as pastas rc0, rc1, rc6.
Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
zekkerj
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 14.004


Sua imensa torcida é bem feliz...


Ver Perfil
« Responder #3 em: 12 de Agosto de 2012, 16:23 »

Esse script usa algum tipo de gráfico? Se usar, sem chance. Só quando o usuário logar.
Registrado

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? Sem Graça
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« Responder #4 em: 13 de Agosto de 2012, 11:44 »

Não usa, apenas precisa do java porque é um .jar.
Tudo que ele faz é baixar um arquivo e ficar monitorando se há alterações nesse arquivo, de 3h em 3h.
Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
zekkerj
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 14.004


Sua imensa torcida é bem feliz...


Ver Perfil
« Responder #5 em: 13 de Agosto de 2012, 12:23 »

E o resto do ambiente, tipo, JAVA_HOME, etc?
Registrado

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? Sem Graça
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« Responder #6 em: 13 de Agosto de 2012, 12:37 »

Sobre isso não saberia responder.
Poderia me dar uma instrução?
Não entendo nada da configuração do java... Acredito estarmos usando o java opensource.


----

Editado:Só pra deixar claro, está funcionando, minha dúvida agora é em relação ao fato de, quando adiciono no 0, 1 6 o meu "daemon", na hora de desligar ele entra em loop infinito.
« Última modificação: 13 de Agosto de 2012, 12:40 por bred81 » Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
zekkerj
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 14.004


Sua imensa torcida é bem feliz...


Ver Perfil
« Responder #7 em: 13 de Agosto de 2012, 12:59 »

Não entendi muito bem o seu problema... mas vamos lá: os scripts do diretório /etc/init.d usam uma estrutura de forma que quando acontece a inicialização, eles são chamados da forma "script start", e quando acontece a finalização, eles são chamados da forma "script stop".

Assim, espera-se que seu script reconheça e reaja a um parâmetro que pode ser "start" ou "stop", e como resultado desse parâmetro ele faça os procedimentos de inicialização ou finalização. Pelo que pude observar, seu script simplesmente dispara o tal daemon, sem observar se está sendo iniciado ou finalizado.

Uma forma simples de corrigí-lo pra isso é assim:

Código:
#! /bin/sh

### BEGIN INIT INFO
# Provides:          xmltvscheduler
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start parser at boot time.
# Description:       Start parser at boot time.
### END INIT INFO

start()
{
    java -jar /home/fred/Downloads/xmltvscheduler.jar
}

stop()
{
}

case $1 in
start)
    start
    ;;
stop)
    stop
    ;;
restart)
    stop
    start
    ;;
*)
    echo "$0 {start | stop | restart}"
esac

exit 0

Quanto a matar o processo, você vai ter que bolar uma forma de matar o processo, e colocar nessa função stop() dentro do script.
Registrado

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? Sem Graça
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« Responder #8 em: 13 de Agosto de 2012, 13:23 »

Beleza, muito obrigado. Eu vou demorar um pouco pra responder porque isso não é o principal agora, assim que botar a mão nisso de novo, eu volto aqui e coloco tudo que ocorreu e o que fiz.
Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« Responder #9 em: 14 de Agosto de 2012, 18:40 »

Muito obrigado, era esse o tratamento que estava faltando.
Ficou assim:
Citar
cat /etc/init.d/daemonScheduler
#! /bin/sh

### BEGIN INIT INFO
# Provides:          xmltvscheduler
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start parser at boot time.
# Description:       Start parser at boot time.
### END INIT INFO

PID=$$

start()
{
        java -jar /home/fred/Downloads/xmltvscheduler.jar
}

stop()
{
        kill $PID
}

case $1 in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        stop
        start
        ;;
*)
        echo "$0 {start | stop | restart}"
esac

exit 0
Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
zekkerj
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 14.004


Sua imensa torcida é bem feliz...


Ver Perfil
« Responder #10 em: 14 de Agosto de 2012, 19:21 »

Bem, só a parte do stop que não vai funcionar como vc espera. Mas deixa pra lá, por enquanto...
Registrado

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? Sem Graça
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« Responder #11 em: 16 de Agosto de 2012, 09:29 »

Bem, só a parte do stop que não vai funcionar como vc espera. Mas deixa pra lá, por enquanto...
Não notei isso. Ele não está mais travando na hora de desligar/reiniciar. Valeu pela ajuda.
Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
ThiagoNalli2
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 24


Ubuntu 12.04 LTS x64


Ver Perfil WWW
« Responder #12 em: 16 de Agosto de 2012, 09:47 »

@bred81

Recomendo colocar um kill -9 $PID no seu processo de stop.

Isso que vc esta fazendo é algo para EPG? Trabalha com TV digital? rsrs
Registrado

Thiago Nalli Valentim - Ubuntu User:
Só sei que nada sei... / Thiago Nalli - LAB
bred81
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 948


HAN?!


Ver Perfil
« Responder #13 em: 16 de Agosto de 2012, 09:54 »

@bred81

Recomendo colocar um kill -9 $PID no seu processo de stop.

Isso que vc esta fazendo é algo para EPG? Trabalha com TV digital? rsrs
Exatamente!

Só colocar xmltv que tudo é descoberto. né?
Registrado

O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...
ThiagoNalli2
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 24


Ubuntu 12.04 LTS x64


Ver Perfil WWW
« Responder #14 em: 16 de Agosto de 2012, 10:15 »

@bred81

Trabalho como CAS Operator, e fazer a carga de arquivos XML de EPG  é minha responsabilidade toda santa Madrugada... Sem Graça

Ah, para não fugir do tópico, experimenta colocar o kill -9 $PID como falei.
Registrado

Thiago Nalli Valentim - Ubuntu User:
Só sei que nada sei... / Thiago Nalli - LAB
Páginas: [1] 2   Ir para o topo
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Tema desenvolvido por FaBMak e n3t0
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines
© 2013 Canonical Ltd. Ubuntu e Canonical são marcas registradas da Canonical Ltd.
XHTML 1.0 válido! CSS válido!