2015-10-17 13 views
9

Sto giocando con alcuni microservizi e li sto eseguendo sul mio laptop, assegnando semplicemente ogni micro-servizio a una nuova porta. Il problema è che mi piacerebbe riavviare uno di loro, devo chiuderli tutti perché nel sistema operativo i processi sono tutti chiamati java. E anche se a volte riesco a indovinare che l'ultimo ha avuto il pid più alto ecc. Non è esattamente una scommessa sicura ...Come dare al processo java un nome nel sistema operativo (diverso da java)

Quindi, c'è un modo per avviare un'applicazione java e assegnargli un nome nel funzionamento sistema? Forse qualcosa di simile

java --Dos.name MyFirstService -jar MyJar.jar.

+2

Quale sistema operativo? – Gowtham

+0

@Gowtham Preferirei se java lo gestisse e non avvolgendo il comando in un comando specifico del sistema operativo. Ma ora sto lavorando su Windows, ma se sono felice dopo aver giocato per un po ', verrà eseguito su Linux. – Roland

+1

Un'altra possibile soluzione al problema potrebbe essere l'utilizzo di qualcosa che mostra la riga di comando completa, non solo il nome del processo. Su Windows ad esempio [Process Explorer] (https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx) può farlo. –

risposta

3

Se avete bisogno di essere in grado di distinguere tra diversi programmi Java è possibile utilizzare il comando JPS che ti dà un elenco di tutti i processi Java e l'esecuzione del programma con

java -Dname=myFirstService -cp myFirstService.jar some.client.main.MyFirstService 

quindi se si fa un:

jps -v 

Vedrete il vostro processo correttamente .

Se è necessario modificare il nome del processo a livello di sistema operativo vi consiglio di utilizzare http://launch4j.sourceforge.net/

7

In Windows, non è possibile (a meno che l'installazione di un qualche tipo di sottosistema POSIX).

Sotto Linux, è possibile utilizzare il comando exec con l'opzione -a "newName" per l'alias del processo che si desidera generare.

Come

exec -a "myJar" /path/to/java -jar /path/to/jar.jar 
Problemi correlati