本篇内容主要讲解“shell中怎么根据进程查找指定容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell中怎么根据进程查找指定容器”吧!当我们在一台Docker服务器上使用top命令定位出
本篇内容主要讲解“shell中怎么根据进程查找指定容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell中怎么根据进程查找指定容器”吧!
当我们在一台Docker服务器上使用top命令定位出一个占用资源比较高的进程,如何发现它属于哪一个容器。
首先获取进程pid
使用docker top命令查找容器pid
docker top 容器命或容器id
当docker 容器过多时,一个一个排查对比费事费力,这里有一个脚本可以快速查找
#!/bin/bash#将需要查找的pid输入$1变量#将所有容器的pid导入变量aa=`docker ps -a |sed -n '1!p'|awk '{print $1}'`#将容器id循环导入docker top命令,查找容器对应的pidfor b in $adoc=`docker top $b|sed -n '1!p'|awk '{print $2}'`#经每一个容器的pid与输入$1对比if [ $c == $1 ] ; then#输出对应$1的容器信息docker ps -a |grep $cfidone
补充:shell查找进程并终止
创建kill.sh文件,内容如下:
port=9200#一、根据端口号查询对应的pid,两种都行pid=$(netstat -NLP | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');#pid=$(ps -ef | grep 你的进程或端口 | grep -v grep | awk '{print $2}')#二、杀掉对应的进程,如果pid不存在,则不执行 if [ -n "$pid" ]; then kill -9 $pid; fi
这个脚本其实就2步,先获取进程id,然后 kill 掉这个进程。
(1)获取进程id的方法
这个可以用 awk命令来获取
ps -ef | grep 你的进程 | grep -v grep | awk '{print $2}'
这里要把这个grep这个用 -v 来过滤掉,然后用awk命令,提取第2个参数就是进程id了
(2)杀进程方法
这个就直接kill -9 进程id 就ok了
kill -9 你的进程id
到此,相信大家对“shell中怎么根据进程查找指定容器”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
--结束END--
本文标题: shell中怎么根据进程查找指定容器
本文链接: https://www.lsjlt.com/news/321984.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0