Autor Tópico: [Resolvido]Start e Stop em scritp com a inicialização?  (Lida 5908 vezes)

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
[Resolvido]Start e Stop em scritp com a inicialização?
« Online: 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: [Selecionar]
sudo update-rc.d daemonXMLTVScheduler defaults 99Me 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 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Subir script com o sistema
« Resposta #1 Online: 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?
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Star e Stop em scritp com a inicialização?
« Resposta #2 Online: 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: [Selecionar]
# 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: [Selecionar]
# 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.
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Start e Stop em scritp com a inicialização?
« Resposta #3 Online: 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.
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? ;D

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Start e Stop em scritp com a inicialização?
« Resposta #4 Online: 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.
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Start e Stop em scritp com a inicialização?
« Resposta #5 Online: 13 de Agosto de 2012, 12:23 »
E o resto do ambiente, tipo, JAVA_HOME, etc?
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? ;D

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Start e Stop em scritp com a inicialização?
« Resposta #6 Online: 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 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Start e Stop em scritp com a inicialização?
« Resposta #7 Online: 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: [Selecionar]
#! /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.
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? ;D

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Start e Stop em scritp com a inicialização?
« Resposta #8 Online: 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.
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Start e Stop em scritp com a inicialização?
« Resposta #9 Online: 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
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: [Resolvido]Start e Stop em scritp com a inicialização?
« Resposta #10 Online: 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...
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? ;D

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: [Resolvido]Start e Stop em scritp com a inicialização?
« Resposta #11 Online: 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.
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

ThiagoNalli

  • Visitante
Re: [Resolvido]Start e Stop em scritp com a inicialização?
« Resposta #12 Online: 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

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: [Resolvido]Start e Stop em scritp com a inicialização?
« Resposta #13 Online: 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é?
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

ThiagoNalli

  • Visitante
Re: [Resolvido]Start e Stop em scritp com a inicialização?
« Resposta #14 Online: 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... ;D

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