在Linux环境中,有些软件可能没有相关的停止脚本,这时可以利用 shell 命令 ps -ef 辅助 kill 进程。
以 flume 为例,在启动 flume 脚本后,jps 会查询到一个 Application 的进程。
此时如果想 kill 掉该进程,可以使用 ps -ef | grep Application 命令过滤出该进程的详细信息。
有两个对应的Application,因此需要进行过滤。
ps -ef | grep Application | grep -v grep
完成后使用 awk 命令获取进程号
ps -ef | grep Application | grep -v grep | awk '{print $2}'
最后配合 kill 命令停止进程
ps -ef | grep Application | grep -v grep | awk '{print $2}' | xargs -n1 kill
注意
ps -ef 命令可能会打印出多个 Application 进程,此时需要将 grep Application 替换成 grep 唯一标识符。
以flume为例,在大多数情况下,每次启动一个 flume 进程都需要一个配置文件,而这个配置文件就可以作为唯一标识符使用。即
ps -ef | grep xxxx.conf | grep -v grep
当然,你也可以通过多级过滤的方式进行筛选
ps -ef | grep Application | grep xxxx.conf | grep xxxxx | grep -v grep | awk '{print $2}' | xargs -n1 kill