網站首頁 編程語言 正文
當我們在一臺docker服務器上使用top命令定位出一個占用資源比較高的進程,如何發現它屬于哪一個容器。
1、首先獲取進程pid
2、使用docker top命令查找容器pid
docker top 容器命或容器id
當docker 容器過多時,一個一個排查對比費事費力,這里有一個腳本可以快速查找
#!/bin/bash #將需要查找的pid輸入$1變量 #將所有容器的pid導入變量a a=`docker ps -a |sed -n '1!p'|awk '{print $1}'` #將容器id循環導入docker top命令,查找容器對應的pid for b in $a do c=`docker top $b|sed -n '1!p'|awk '{print $2}'` #經每一個容器的pid與輸入$1對比 if [ $c == $1 ] ; then #輸出對應$1的容器信息 docker ps -a |grep $c fi done
補充: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
原文鏈接:https://www.cnblogs.com/runningonshell/p/15867611.html
相關推薦
- 2022-10-31 一文詳解如何使用Redis實現分布式鎖_Redis
- 2022-02-11 ResizeObserver Polyfill監聽元素寬高的變化,在React中的應用
- 2024-07-13 spring實現定時任務的動態可配置、可刪除、可啟用停用功能
- 2022-12-22 Object?arrays?cannot?be?loaded?when?allow_pickle=F
- 2022-10-12 使用Docker搭建Vsftpd?的?FTP?服務的詳細過程_docker
- 2022-08-04 C#中ListView用法實例_C#教程
- 2022-09-08 python?中Mixin混入類的使用方法詳解_python
- 2022-09-28 Python使用captcha制作驗證碼的實現示例_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支