Linux檢視每個程序的Openfiles數量

2021-09-23 17:51:55 字數 1120 閱讀 9860

在linux裡,在/etc/security/limits.conf裡有乙個引數是nofile,作用是控制某使用者的檔案開啟數量。可以使用ulimit -n的命令檢視具體的限制,一但當前檔案開啟數達到nofile上限就無法再開啟檔案,從而使某些應用執行異常,如使用者無法通過ssh登入系統。

通過我們可以使用lsof命令檢視檔案開啟的具體情況,如使用者、程序的資訊。使用

lsof -p pid

可以檢視某乙個程序的檔案開啟數量

lsof -u uid

可以檢視某乙個使用者的檔案開啟數量

但是發現好像沒有乙個引數可以知道所有程序的檔案開啟數量

所以我就寫了個小腳本來統計一下所有程序的檔案開啟數量,從而可以得知到底是哪個程序出現問題,再作進一步的處理,指令碼的具體內容如下

#!/bin/bash

# psof.sh

# author:

# # ####### # # #######

# # # ## # #

# # # # # # #

### ##### # # # #

# # # # # # #

# # # # ## #

# # ####### # # #

# date: 2016-10-09

# description: 計算每個程序的openfiles

tmpfile=/dev/shm/psof.txt

echo "" > $tmpfile

for pid in $(ps -eo pid | grep -v pid)

do echo $pid":"$(lsof -p $pid|wc -l) >> $tmpfile ;

done

echo "pid : openfiles"

sort -nrk 2 -t: $tmpfile

同樣,可以稍作修改用於統計所有使用者的檔案開啟數量

拋磚引玉,以供參考

linux 程序檢視

一,top命令 顯示了當前正執行的程序以及關於它們的重要資訊,包括它們的記憶體和 cpu 用量。該列表既是真實時間的也是互動的。命令描述 q 退出 space 立即重新整理顯示 h 顯示幫助螢幕 k 殺死某程序。你會被提示輸入程序 id 以及要傳送給它的訊號。n 改變要顯示的程序數量。你會被提示輸入...

檢視linux程序

程序是在 cpu 及記憶體中執行的程式 而每個程序可以建立乙個或多個程序 父子程序 檢視程序方法 第一種 ps auxps命令用於報告當前系統的程序狀態。可以搭配kill指令隨時中斷 刪除不必要的程式。ps命令是最基本同時也是非常強大的程序檢視命令,使用該命令可以確定有哪些程序正在執行和執行的狀態 ...

Linux檢視程序and殺死程序

ps命令 顯示程序狀態 ps命令是 process status 的縮寫,ps命令用於顯示當前系統的程序狀態。可以搭配kill指令隨時中斷 刪除不必要的程式。語法格式 ps 引數 a 顯示現行終端機下的所有程式,包括其他使用者的程式 u 以使用者為主的格式來顯示程式狀況 x 顯示所有程式,不以終端機...