我们有一个要求,即我们拥有从不同文件夹运行的相同 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”类的进程。我只想终止源自单个目录的进程,并且不想触及从其他目录运行的进程的副本。
最佳答案
您可以找到使用这些文件夹的所有进程 ID:
lsof | grep /home/user/Folder | awk '{print "kill " $2}'
并执行它:lsof | grep /home/user/Folder | awk '{print "kill " $2}'|sh
关于java - 如何杀死从 CentOS 目录运行的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63116330/