Preciso fazer uma aplicação que rode em segundo plano, algo como um serviço do Windows, mas em qq SO. Alguém tem alguma dica?
Porque você não adota a estratégia normal: Crie seu programa Java normalmente, depois crie um script para chamar o tal programa, um .sh, um .bat … na verdade estes dois já dão pro gasto. Depois vc roda os scripts como serviços
[]s
pra rodar “como se fosse serviço” ou seja, sem que o terminal “fique preso”
use:
javaw SuaClasse
Em DOS, não tem algo como
start java ...
tb?
[]s
Na verdade o start não é do DOS, mas sim do Windows no modo console… no DOS puro não tem multi-tarefa.
Se você der no console “start /?” vai ver um monte de opções também…
No Linux deve ter algo parecido… mas não sei direito…
Falou
No *n?x, na maioria das shells (bash e tcsh, pelo menos), eh soh tacar um & na frente do comando:
java ... &
e ele vai pro background. Melhor ainda se vc redirecionar a stdout e stderr (1 e 2, respectivamente) para arquivos. Outro jeito de fazer eh bater um Ctrl-Z depois que a aplicacao ja tiver iniciado e estiver “bloqueando” o console, e dar “bg”. Para trazer a aplicacao de volta a tona, eh soh dar “fg”. Simple, huh?
E para ela não ficar atrelada ao console, basta usar o nohup, disponivel na maioria dos unix.
Só para exemplificar, poderia me passar uma linha para linux/ unix completa para, digamos, uma aplicativo “meuJava”?
É que eu nao tenho nenhuma referencia aqui dos comandos -ja que uso windows …
Obrigado
Seria algo como:
java meuJava& stdout /path? stderr /path? ?