Rodar programa java como processo no linux

10 respostas
R

Senhoras e Senhores, Bom dia.

Fiz um sistema em java que precisa rodar em um servidor linux Slackware mas tem que rodar como um serviço.

Fiz um ligar.sh mas quando eu chamo o ?sh ligar.sh? o console fica travado nele e se eu fecho o putty ele fecha o meu programa.

Abaixo os códigos dos scripts

[b]
Ligar.sh

java -jar -Dfile.encoding=UTF-8 CriarCentralSms.jar
[/b]

Será que alguém manja ai e pode me ajudar? Dei uma boa procurada mas não achei nada, se alguém tiver algum link.

Agradeço
Ricoldi.

10 Respostas

W

java -jar -Dfile.encoding=UTF-8 CriarCentralSms.jar &

joga pra background.

So pra complementar, se vc criar um script no /etc/init.d da pra vc inicializar o seu programa sempre que vc dar um boot. Da uma olhada nessa thread no linuxforum, talvez ajude.

R

Agradeço a ajuda windsofhell works fine!

Abraços
Ricoldi

W

ricoldi:
windsofhell:
java -jar -Dfile.encoding=UTF-8 CriarCentralSms.jar &

joga pra background.

Não entendi direito você quer dizer que o & faz rodar em background?

O & faz rodar em background como o windsofhell comentou.

Só quanto a inicialização em /etc/init.d, acho que no Slackware é um pouco diferente, porque o sistema de inicialização é outro. Se não me engano tem que criar o script em rc.d…

R

wagnerfrancisco:
ricoldi:
windsofhell:
java -jar -Dfile.encoding=UTF-8 CriarCentralSms.jar &

joga pra background.

Não entendi direito você quer dizer que o & faz rodar em background?

O & faz rodar em background como o windsofhell comentou.

Só quanto a inicialização em /etc/init.d, acho que no Slackware é um pouco diferente, porque o sistema de inicialização é outro. Se não me engano tem que criar o script em rc.d…

É depois que eu perguntei fui ver que funciona assim mesmo! Agradeço a resposta wagnerfrancisco.

V

chamando java -jar com “&” no final nao resolverá seu problema. Quando a sessao do usuario que chamou o processo se fechar o processo será morto.
Use “nohup java -jar …”

R

virgulla:
chamando java -jar com “&” no final nao resolverá seu problema. Quando a sessao do usuario que chamou o processo se fechar o processo será morto.
Use “nohup java -jar …”

É mesmo virgulla? É que eu fiz assim:

Criei o .sh com a instrução “java -jar meuprograma.jar &” e chamei pelo putty. fechei o putty usando o “logout” desliguei minha maquina e ainda tá rodando até hoje desde ontem quando iniciei o “.sh”.

Será que no slackware só o & não funciona?
ou qual a diferença entre o “&” e o “nohup”? Quando usar um ou o outro?

Desculpe a quantidade de perguntas mas é que fiquei curioso depois desta.

Agradeço
Ricoldi

V

Engraçado. Eu conectava num servidor chamva algum processo com “&” e quando vazia logoff os processos eram mortos. Fui atrás e descobri que o logoff no Linux mata os processos do usuário, então vi a dica de usar “nohup”. Pode ser mesmo uma excessão do Slackware, já que eu sempre usei Debian e derivados.
Mas o importante é que esteja funcionando =D

Abraço.

R

possívelmete se executar o comando como root ele não morrerá após o logoff (eu acho). Imagino que por isso o dele deve ter dado certo…

W

correto. :slight_smile:

R

Então galera, pode ser que aqui no slackware seja assim, tanto que eu tentei rodar com o “nohup” e deu um erro que nem lembro qual é.

Mas é isso ai afinal eu rodei o sh como root e deve ser por isso que o logout não matou.

Se der erro eu dou uma pesquisada neste “nohup”.

Agradeço muito a ajuda de todos.
Abraços
Ricoldi

Criado 7 de outubro de 2008
Ultima resposta 8 de out. de 2008
Respostas 10
Participantes 5