用于停止java程序的Shell脚本

Har*_*ish 11 java shell ksh

有没有办法通过单独知道名称来停止使用shell脚本运行的java程序.我正在使用ksh shell

sfu*_*ger 20

跟进Mnementh的建议:

这应该做的工作

jps -l | grep org.example.MyMain | cut -d ' ' -f 1 | xargs -rn1 kill
Run Code Online (Sandbox Code Playgroud)
  • jps -l:列出java进程,其中包含"应用程序主类的完整包名或应用程序的JAR文件的完整路径名".

  • grep:选择你喜欢的过程

  • cut -d -' ' -f 1:使用分隔符''拆分列中的输出并仅打印第一个(pid)

  • xargs -rn1 kill:为每个PID执行kill(如果有的话)

请注意,您必须在运行该进程时使用相同的用户(或root)运行jps和xargs


dic*_*ciu 6

向JVM添加一个唯一属性以便轻松识别它,例如test.class

java -Duniquename=1 test
Run Code Online (Sandbox Code Playgroud)

要杀了它:

ps ax | grep uniquename | grep -v grep | awk '{print $1}' | xargs kill
Run Code Online (Sandbox Code Playgroud)