Criação de serviços [RESOLVIDO]

1. Criação de serviços [RESOLVIDO]

Brunno de Moura
bhmoura

(usa Fedora)

Enviado em 07/05/2013 - 09:43h

senhores mestres, estou com um pequeno serviço e não estou conseguindo fazer, tenho um aplicativo feito em JAVA chamado programa.jar e quero faze-lo roda-lo no linux, so que gostaria que esse aplicativo virasse um serviço, para que eu facilitasse o comando de start e stop caso precisasse. Esse motivo é por que quando eu executo o comando java -jar programa.jar ele funciona normal, mais quando eu finalizo o ssh ou saindo do servidor, ele para o aplicativo, e gostaria que ele continuasse executando.




  


2. Re: Criação de serviços [RESOLVIDO]

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 07/05/2013 - 11:02h

Veja um exemplo abaixo, na linha chkconfig 2345 são os level de funcionamento, 13 e a ordem que será iniciado na lista dos processo, 90 é a ordem que será finalizado na lista dos processo.







chmod +x /etc/rc.d/init.d/nome-do-servico

#!/bin/bash
# set -x
# Nome-do-Serviço - Nome-do-Serviço
#
# description:Nome-do-serviço - Estefanio Brunhara <estefanio@brunhara.com>
# chkconfig: 2345 13 90
#
# coloque este arquivo no /etc/rc.d/init.d/
# e ative ele chkconfig nome-doserviço on

#====== Sangiovanne Informatica Ltda. (31)3375-1202 ======#
# Estefanio Brunhara 11-04-2012 BH-MG-BR #
#==========================================#

case "$1" in
start)
/usr/sbin/Progrma.jar $1
;;
stop)
/usr/sbin/Progrma.jar $1
;;
free)
/usr/sbin/Progrma.jar $1
;;
*)
echo "Uso: $0 {start|stop|reload}"
exit 1
;;
esac
exit 0


3. Criação de serviços

Daniel Zaia Manzano
dzm_linux

(usa Debian)

Enviado em 07/05/2013 - 13:39h


Amigo,

Se o seu objetivo é tão somente manter o programa rodando, mesmo depois que você se deslogar, você pode utilizar o comando "nohup", que faz o comando ou programa rodar independente de o usuário ter feito logoff.

Ex.

$ nohup comando

Por padrão, a entrada é ignorada, e a saída vai para o arquivo nohup.out, que é criado no diretório onde o programa foi rodado.

Para mais informações pesquise:
$ man nohup

Espero ter ajudado.

Abraços


4. Re: Criação de serviços [RESOLVIDO]

Brunno de Moura
bhmoura

(usa Fedora)

Enviado em 08/05/2013 - 10:50h

estefaniobrunha escreveu:

Veja um exemplo abaixo, na linha chkconfig 2345 são os level de funcionamento, 13 e a ordem que será iniciado na lista dos processo, 90 é a ordem que será finalizado na lista dos processo.







chmod +x /etc/rc.d/init.d/nome-do-servico

#!/bin/bash
# set -x
# Nome-do-Serviço - Nome-do-Serviço
#
# description:Nome-do-serviço - Estefanio Brunhara <estefanio@brunhara.com>
# chkconfig: 2345 13 90
#
# coloque este arquivo no /etc/rc.d/init.d/
# e ative ele chkconfig nome-doserviço on

#====== Sangiovanne Informatica Ltda. (31)3375-1202 ======#
# Estefanio Brunhara 11-04-2012 BH-MG-BR #
#==========================================#

case "$1" in
start)
/usr/sbin/Progrma.jar $1
;;
stop)
/usr/sbin/Progrma.jar $1
;;
free)
/usr/sbin/Progrma.jar $1
;;
*)
echo "Uso: $0 {start|stop|reload}"
exit 1
;;
esac
exit 0


-----------------------------------------------------------------------------------------------------

Eu segui a sua dica descrito abaixo.

#vi /etc/rc.d/init.d/nome-do-servico (copiei o seu Script e colei e alterei a pasta de onde esta o programa)
#chmod +x /etc/rc.d/init.d/nome-do-servico
#chkconfig nome-do-serviço on

Listei o chkconfig --list para verificar se o nome-do-servico esta on como mostra abaixo
nome-do-servico 0:off 1:off 2:on 3:on 4:on 5:on 6:off

e executei o teste com o seguinte comando dentro do init.d
$./nome-do-servico start
2013/05/08 - 10:40:42,927 - GMT-0300 Log gerado a cada 10 segundos as: 08/05/2013 10:40:42
2013/05/08 - 10:40:52,963 - GMT-0300 Log gerado a cada 10 segundos as: 08/05/2013 10:40:52
Dei um CTRL +C para eu sair do SSH, ai ele parou. Eu queria que ele ficasse funcionando mais com as funcionalidades de START e STOP.






5. Re: Criação de serviços [RESOLVIDO]

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 09/05/2013 - 20:41h

bhmoura escreveu:

estefaniobrunha escreveu:

free) <--- errei aqui é reload
/usr/sbin/Progrma.jar $1
;;
*)
echo "Uso: $0 {start|stop|reload}"


Dei um CTRL +C para eu sair do SSH, ai ele parou. Eu queria que ele ficasse funcionando mais com as funcionalidades de START e STOP.




Bom, só um script não torna seu programa um daemon, você precisa implementar no seu programa.jar esta situação. Agora se você não tem como fazer isto no programa.jar. voce pode rodar com nohup como nosso amigo dzm falou, ou mesmo com & no final.

start)
nohup programa.jar
OU
programa.jar &
;;

E criar uma forma de pegar o pid para depois você dar o stop

stop)
PID=`ps -aux |grep programa.jar| awk '{print$2}'`
kill -9 $PID
OU
killall programa.jar
;;


Este exemplo acima precisar de ajuste de acordo com a sua distribuição.

boa sorte









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts