jps(1) Monitoring Tools jps(1)

jps - فهرست کردن ماشین‌های مجازی جاوای (JVM) ابزاربندی‌شده روی سیستم مقصد. این دستور آزمایشی است و پشتیبانی نمی‌شود.

jps [ options ] [ hostid ]
گزینه‌های خط فرمان. بخش «گزینه‌ها» را ببینید.
شناسهٔ میزبانی که گزارش فرایند باید برای آن تولید شود. شناسهٔ hostid می‌تواند شامل بخش‌های اختیاری باشد که پروتکل ارتباطی، شماره درگاه (پورت) و سایر داده‌های وابسته به پیاده‌سازی را مشخص می‌کنند. بخش «شناسه میزبان» را ببینید.

دستور jps ماشین‌های مجازی جاوای HotSpot ابزاربندی‌شده در سیستم مقصد را فهرست می‌کند. این دستور تنها مجاز به گزارش اطلاعات دربارهٔ JVMهایی است که دسترسی‌های لازم را برای آن‌ها دارد.

اگر دستور jps بدون تعیین یک hostid اجرا شود، به دنبال JVMهای ابزاربندی‌شده روی میزبان محلی می‌گردد. اگر با یک hostid اجرا شود، با استفاده از پروتکل و درگاه مشخص‌شده، به جستجوی JVMها در میزبان تعیین‌شده می‌پردازد. در این حالت فرض می‌شود که فرایند jstatd روی میزبان مقصد در حال اجرا است.

دستور jps شناسهٔ محلی JVM یا همان lvmid را برای هر JVM ابزاربندی‌شدهٔ یافت‌شده در سیستم مقصد گزارش می‌دهد. شناسهٔ lvmid معمولاً، اما نه الزاماً، همان شناسهٔ فرایند سیستم‌عامل برای فرایند JVM است. بدون هیچ گزینه‌ای، jps شناسهٔ lvmid هر برنامهٔ جاوا را به‌همراه شکل کوتاه نام کلاس برنامه یا نام فایل jar فهرست می‌کند. شکل کوتاه نام کلاس یا نام فایل JAR، اطلاعات بستهٔ (package) کلاس یا اطلاعات مسیر فایل JAR را حذف می‌کند.

دستور jps از راه‌انداز جاوا برای یافتن نام کلاس و آرگومان‌های فرستاده‌شده به متد main استفاده می‌کند. اگر JVM مقصد با یک راه‌انداز سفارشی اجرا شده باشد، نام کلاس یا فایل JAR و آرگومان‌های متد main در دسترس نخواهند بود. در این حالت، دستور jps رشتهٔ Unknown را برای نام کلاس یا نام فایل JAR و همچنین برای آرگومان‌های متد main در خروجی چاپ می‌کند.

فهرست JVMهای ارائه‌شده توسط دستور jps می‌تواند با توجه به مجوزهای اعطاشده به کاربری که دستور را اجرا می‌کند، محدود شود. این دستور تنها JVMهایی را فهرست می‌کند که کاربر طبق سازوکارهای کنترل دسترسی سیستم‌عامل، حق دسترسی به آن‌ها را داشته باشد.

دستور jps از تعدادی گزینه پشتیبانی می‌کند که خروجی دستور را تغییر می‌دهند. این گزینه‌ها ممکن است در آینده دستخوش تغییر یا حذف شوند.


از نمایش نام کلاس، نام فایل JAR و آرگومان‌های ارائه‌شده به متد main جلوگیری می‌کند و تنها فهرستی از شناسه‌های محلی JVM تولید می‌نماید.

آرگومان‌های ارائه‌شده به متد main را نمایش می‌دهد. این خروجی ممکن است برای JVMهای تعبیه‌شده (embedded) برابر با null باشد.

نام کامل بسته (package) برای کلاس main برنامه یا مسیر کامل فایل JAR برنامه را نمایش می‌دهد.

آرگومان‌های ارائه‌شده به JVM را نمایش می‌دهد.

از نمایش نام کلاس، نام فایل JAR و آرگومان‌های ارائه‌شده به متد main جلوگیری می‌کند و تنها فهرستی از شناسه‌های محلی JVM تولید می‌نماید.

گزینهٔ option را به JVM ارسال می‌کند، که در آن option یکی از گزینه‌های شرح‌داده‌شده در صفحهٔ راهنمای راه‌انداز برنامهٔ جاوا است. برای نمونه، -J-Xms48m حافظهٔ آغازین را روی ۴۸ مگابایت تنظیم می‌کند. java(1) را ببینید.

شناسهٔ میزبان یا hostid رشته‌ای است که سیستم مقصد را مشخص می‌کند. نحو (syntax) رشتهٔ hostid منطبق بر نحو یک URI است:

[protocol:][[//]hostname][:port][/servername]
پروتکل ارتباطی. اگر protocol حذف شود و hostname تعیین نشده باشد، پروتکل پیش‌فرض یک پروتکل محلی بهینه‌شده و وابسته به بستر سیستم‌عامل خواهد بود. اگر پروتکل حذف شود و یک نام میزبان مشخص شده باشد، پروتکل پیش‌فرض rmi است.
یک نام میزبان یا نشانی IP که میزبان مقصد را مشخص می‌کند. اگر پارامتر hostname را نادیده بگیرید، میزبان مقصد همان میزبان محلی خواهد بود.
درگاه پیش‌فرض برای برقراری ارتباط با کارساز دوردست. اگر پارامتر hostname حذف شود یا پارامتر protocol یک پروتکل محلی بهینه‌شده را تعیین کرده باشد، پارامتر port نادیده گرفته می‌شود. در غیر این صورت، نحوهٔ برخورد با پارامتر port وابسته به پیاده‌سازی است. برای پروتکل پیش‌فرض rmi، پارامتر port شمارهٔ درگاه rmiregistry در میزبان دوردست را تعیین می‌کند. اگر پارامتر port حذف شود و پارامتر protocol نشان‌دهندهٔ rmi باشد، درگاه پیش‌فرض rmiregistry (۱۰۹۹) استفاده می‌شود.
رفتار با این پارامتر به پیاده‌سازی بستگی دارد. برای پروتکل محلی بهینه‌شده، این فیلد نادیده گرفته می‌شود. برای پروتکل rmi، این پارامتر رشته‌ای است که نام شیء دوردست RMI را در میزبان دوردست نشان می‌دهد. برای اطلاعات بیشتر، گزینهٔ -n دستور jstatd را ببینید.

خروجی دستور jps از الگوی زیر پیروی می‌کند:

lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

تمام نشانه‌های خروجی با نویسهٔ فاصله از یکدیگر جدا می‌شوند. مقدار arg که شامل فاصله‌های درونی باشد، هنگام تلاش برای نگاشت آرگومان‌ها به پارامترهای مکانی واقعی آن‌ها موجب ابهام می‌شود.

نکته: توصیه می‌شود که برای پردازش و تفکیک (parse) خروجی jps اسکریپت ننویسید، زیرا این قالب ممکن است در نگارش‌های آینده تغییر کند. اگر اسکریپت‌هایی بنویسید که خروجی jps را تجزیه کنند، باید انتظار بازبینی و اصلاح آن‌ها را در نگارش‌های بعدی این ابزار داشته باشید.

این بخش مثال‌هایی از دستور jps را ارائه می‌دهد.

فهرست کردن JVMهای ابزاربندی‌شده در میزبان محلی:

jps
18027 Java2Demo.JAR
18032 jps
18005 jstat

مثال زیر JVMهای ابزاربندی‌شده روی یک میزبان دوردست را فهرست می‌کند. در این مثال فرض شده است که کارساز jstat و یا ثبات RMI داخلی آن یا یک فرایند خارجی مجزای rmiregistry، روی میزبان دوردست و روی درگاه پیش‌فرض (درگاه ۱۰۹۹) در حال اجرا هستند. همچنین فرض شده است که میزبان محلی مجوزهای لازم برای دسترسی به میزبان دوردست را دارد. این مثال همچنین گزینهٔ -l را برای نمایش شکل کامل نام کلاس‌ها یا نام فایل‌های JAR در خروجی شامل می‌شود.

jps -l remote.domain
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
2857 sun.tools.jstatd.jstatd

مثال زیر JVMهای ابزاربندی‌شده در یک میزبان دوردست با درگاهی غیرپیش‌فرض برای ثبات RMI را فهرست می‌کند. این مثال فرض می‌کند که کارساز jstatd به‌همراه یک ثبات داخلی RMI متصل‌شده به درگاه ۲۰۰۲، روی میزبان دوردست در حال اجرا است. این مثال همچنین از گزینهٔ -m برای گنجاندن آرگومان‌های فرستاده‌شده به متد main هر یک از برنامه‌های جاوای فهرست‌شده استفاده می‌کند.

jps -m remote.domain:2002
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
3102 sun.tools.jstatd.jstatd -p 2002

•
java(1)
•
jstat(1)
•
jstatd(1)
•
rmiregistry(1)
21 November 2013 JDK 8