Desidero scrivere un'applicazione java che deve essere distribuita su una casella unix. Devo controllare i processi in esecuzione, che sono in esecuzione sulla scatola. Qualcuno potrebbe mostrarmi un esempio/indicarmi la giusta direzione?Controllare i processi in esecuzione - java
risposta
Se si desidera trovare i processi in esecuzione di Java, è possibile utilizzare
ps -ef | grep java
Se avete bisogno di controllare quali porte sono in uso,
netstat -tupln
mi sono imbattuto in alcuni alternative per ps aux | grep java
fornite da Java che richiedono meno digitazioni:
jcmd
e
jps -v
L'opzione -v
mostrerà gli argomenti passati alla JVM.
Se si ottengono informazioni sul processo non disponibili, ciò potrebbe essere dovuto al fatto che il processo è in esecuzione con OpenJDK. Se sei root e il processo è stato avviato con un utente non root è possibile utilizzare il seguente per vedere i dettagli (sostituire <user>
con il nome utente):
sudo -u <user> jps -v
Un'altra bella caratteristica di jcmd
è che è possibile visualizzare la versione di Java che uno specifico processo utilizza (nel caso in cui ps aux | grep java
non lo mostra), è così che mi sono imbattuto in due (sostituire <pid>
con l'ID del processo):
jcmd <pid> VM.version
java.lang.ProcessBuilder + ps – Keith
Cosa intendi con "controllare i processi in esecuzione"? Di quali informazioni sui processi hai bisogno esattamente? – david
Hai provato a cercare su google "Come controllare i processi in esecuzione linux" – Grammin