我正在寻找一个可以找到 PID 的命令,例如:
ps -ef | grep com.sds.afi.rte.cosmos-1.0.0.jar
cosmos 4690 4689 3 14:27 pts/8 00:00:06 java -Dlog4j.debug -Dlog4j.configuration=file:/data/cosmos/sim/bin/log4j.xml -jar com.sds.afi.rte.cosmos-1.0.0.jar
cosmos 5484 5482 0 14:30 pts/11 00:00:00 grep com.sds.afi.rte.cosmos-1.0.0.jar
然后使用以下方法杀死这些进程:
kill -9 pid
我怎样才能制作一个 shell 脚本来自动执行上述所有操作?
最佳答案
killall java
或者更笼统地说:
killall <processname>
有时我有同名的进程,但命令行参数不同。要终止此类进程或任何任意进程而无需输入 ps 然后终止 pid,我这样做:
ps aux | grep <something> | awk '{print $2}' | xargs kill
在哪里
-
<something>
是您要在 ps aux 中搜索的任何短语 命令的输出。 -
awk '{print $2}'
只会过滤掉第二个 列,这是一个 PID 列表 -
kill
将在每个 那些 PID。
编辑:正如 tripleee 指出的那样,猛烈抨击 kill -9
不是个好主意。在一个过程中,除非绝对需要。所以删除了 -9
以上命令的一部分
关于linux - 使用shell脚本自动杀死进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389543/