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