[英]Shell script to stop a java program
有沒有辦法通過單獨知道名稱來停止使用shell腳本運行的java程序。我正在使用ksh shell
跟進Mnementh的建議 :
這應該做的工作
jps -l | grep org.example.MyMain | cut -d ' ' -f 1 | xargs -rn1 kill
jps -l
:列出java進程,其中包含“應用程序主類的完整包名或應用程序JAR文件的完整路徑名”。
grep
:選擇你喜歡的過程
cut -d -' ' -f 1
:使用分隔符''拆分列中的輸出並僅打印第一個(pid)
xargs -rn1 kill
:對每個PID執行kill(如果有的話)
請注意,您必須在運行該進程時使用相同的用戶(或root)運行jps和xargs
向JVM添加一個唯一屬性以便輕松識別它,例如test.class
java -Duniquename=1 test
要殺了它:
ps ax | grep uniquename | grep -v grep | awk '{print $1}' | xargs kill
您可以使用jps標識與已啟動的java程序的名稱相關聯的進程ID(jps是java程序的進程管理器)。 使用此ID,您可以正常終止該過程。
你可以使用pkill:
pkill your_java_program_name
如果只運行程序的一個實例,這將起作用。
您可以使用ps的-o選項來格式化輸出,
ps -eo cmd,pid | awk '!/awk/&&/mycommand/{cmd="kill -9 "$2;system(cmd)}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.