Rodar programa java como serviço no linux

Como eu faço para rodar meu programa java como um serviço no linux?

Como assim serviço no linux ???

Veja bem, sabe como por exemplo seu gerenciador de banco de dados fica rodando?
tipo como o tomcat entendeu?
eu vou lá, dou o start nele…
qualquer problema, dou stop…

depende da distro, mas na maioria dos casos voce faz assim:

-coloque 1 shell script de controle em /etc/init.d
-crie sym-links em /etc/rc?.d/ onde ? é o runlevel desejado.

e, sem querer abusar, como que eu faço pra queeu digite um comando, por exemplo, list myapp, e ele liste todos os usuários que estão conectados?
entendeu como, para o meu programa receber um comando do shell e executar ele, existe como?

hmmm, não lembro bem a sintax, mas maioria das distros tem 1 comando que te faz isso:

[quote=“Nosphe”]
entendeu como, para o meu programa receber um comando do shell e executar ele, existe como?[/quote]
Não, não entendi.
algo assim?

public static void main(String[] args) {
   System.getRuntime().exec(args[0]);
}

ou

public static void main(String[] args) {
   BufferedReader br = new BufferedReader(System.in);
   System.getRuntime().exec(br.readline());
}

Deixa eu me esxplicar melhor…
Tudo bem, ele vai ficar rodando em background, como um serviço. Eu quero é poder interagir com ele. Chego no prompt do linux e digito lá o comando, e a minha aplicação executa o comando entendeu?

Use tcp/ip, shm ou arquivos como forma de comunicação.
Não use signals ou unix sockets porque com java não vai ser possivel.
Voce precisa pensar em como teu daemon vai atuar e que tipo de informação ele precisa dos usuarios para operar.

vai ser simples
vai ser um tipo de um servidorzinho, e dentro dele eu terei uma lista de usuártios conectados por exemplo
num dado momento, eu vou querer ver quem está conectado…
ou melhor ainda, ele vai ficar rodando em background no servidor. então, da repente, que quero abrir uma janela de console e ver o que está acontecendo com o servidor e utilizar uma interface gráfica do meu servidorzinho…
como eu poderia fazer isso? :?:

use JMX

quem é jmx?