Когда вы запускаете jconsole или visualvm, они представляют вам список «локально запущенных java приложений», которые можно подключать и отслеживать.
Как он узнает, какие приложения, запущенные локально, существуют?
Цитирование из документации VisualVM (описано в Когда нужны явные JMX-соединения? и касается локальных экземпляров):
Java VisualVM обнаруживает запущенные приложения с помощью инструмента jps (Solaris, Linux или Ma c OS X или Windows), который может обнаруживать только Java приложений, запущенных тем же пользователем, что и тот, кто запускает Java Средство VisualVM.
jps
Информация о том, как jps обнаруживает локальные виртуальные машины, содержится, например, в этом ответе SO. Короче говоря, он сканирует каталог /tmp/hsperfdata_<username>, где экземпляры JVM генерируют информационные файлы.
/tmp/hsperfdata_<username>