繁体   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