【发布时间】:2023-03-11 22:10:01
【问题描述】:
我们有一个要求,即我们拥有从不同文件夹运行的同一个 Spark 应用程序(基本上是一个 .jar 文件)的副本。我正在寻找一个 shell 命令,使用它我可以终止在一个文件夹中运行的 Spark 应用程序,而不会终止其他 spark 作业。
例如:
/home/user/Folder1 - CapStoneSpark.jar /home/user/Folder2 - CapStoneSpark.jar /home/user/Folder3 - CapStoneSpark.jar
jar 文件中的主类是“CapStoneSparkMain”。假设我只想杀死运行在Folder2中的CapStoneSpark.jar,而不接触或杀死运行在Folder1和Folder3中的CapStoneSpark.jar,那我该怎么办?
我已经试过了:
kill $(ps aux | grep 'CapStoneSparkMain' | awk '{print $2}')
但是,它会杀死所有包含“CapStoneSparkMain”类的进程。
我只想杀死来自单个目录的进程,不想接触从其他目录运行的进程的副本。
【问题讨论】:
-
lsof 命令可以帮助您识别要杀死的正确 pid
-
我是 shell 脚本的新手。你能指导我如何做到这一点吗?
标签: java linux shell apache-spark centos