簡體   English   中英

用於停止java程序的Shell腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM