Ⅰ 如何在linux中查看所有正在運行的進程
可以使用top命令。
top命令提供了運行中系統的動態實時視圖。在終端中輸入top:
第一行:
10:01:23
當前系統時間
126
days,
14:29
系統已經運行了126天14小時29分鍾(在這期間沒有重啟過)
2
users
當前有2個用戶登錄系統
load
average:
1.15,
1.42,
1.44
load
average後面的三個數分別是1分鍾、5分鍾、15分鍾的負載情況。
load
average數據是每隔5秒鍾檢查一次活躍的進程數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。
第二行:
Tasks
任務(進程),系統現在共有183個進程,其中處於運行中的有1個,182個在休眠(sleep),stoped狀態的有0個,zombie狀態(僵屍)的有0個。
第三行:cpu狀態
6.7%
us
用戶空間佔用CPU的百分比。
0.4%
sy
內核空間佔用CPU的百分比。
0.0%
ni
改變過優先順序的進程佔用CPU的百分比
92.9%
id
空閑CPU百分比
0.0%
wa
IO等待佔用CPU的百分比
0.0%
hi
硬中斷(Hardware
IRQ)佔用CPU的百分比
0.0%
si
軟中斷(Software
Interrupts)佔用CPU的百分比
在這里CPU的使用比率和windows概念不同,如果你不理解用戶空間和內核空間,需要充充電了。
第四行:內存狀態
8306544k
total
物理內存總量(8GB)
7775876k
used
使用中的內存總量(7.7GB)
530668k
free
空閑內存總量(530M)
79236k
buffers
緩存的內存量
(79M)
第五行:swap交換分區
2031608k
total
交換區總量(2GB)
2556k
used
使用的交換區總量(2.5M)
2029052k
free
空閑交換區總量(2GB)
4231276k
cached
緩沖的交換區總量(4GB)
Ⅱ linux怎麼查詢進程和進程的id
用top -u 命令查看進程以及PID。
命令如下:
$ top -u
PID — 進程id
USER — 進程所有者
PR — 進程優先順序
NI — nice值。負值表示高優先順序,正值表示低優先順序
VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
SHR — 共享內存大小,單位kb
S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程
%CPU — 上次更新到現在的CPU時間佔用百分比
%MEM — 進程使用的物理內存百分比
TIME+ — 進程使用的CPU時間總計,單位1/100秒
COMMAND — 進程名稱(命令名/命令行)
Ⅲ 如何在Linux中查看所有正在運行的進程
查看Linux中所有正在運行的進程 ,可以參考如下方法:
1、通過ps命令的-A或者-e參數來獲取系統中所有的進程,這兩個參數的作用一樣的。
Ⅳ python腳本怎麼獲取遠程linux伺服器的進程名
進程信息
/proc目錄包含了所有正運行的進程目錄。這些目錄的名字和進程的標識符是一樣的。所以,如果你遍歷/proc目錄下那些使用數字作為它們的名字的目錄,你就會獲得所有現在正在運行的進程列表。在下面的代碼中process_list()函數返回所有現在正在運行的進程的標識符列表。當你執行這個程序後,這個列表的長度就是在系統上運行的總進程數。
復制代碼 代碼如下:
#!/usr/bin/env python
"""
List of all process IDs currently active
"""
from __future__ import print_function
import os
def process_list():
pids = []
for subdir in os.listdir('/proc'):
if subdir.isdigit():
pids.append(subdir)
return pids
if __name__=='__main__':
pids = process_list()
print('Total number of running processes:: {0}'.format(len(pids)))
上面的程序當執行後會顯示和下面類似的輸出:
復制代碼 代碼如下:
Total number of running processes:: 229
每個進程目錄包含了一些其他文件和目錄,如進程命令的調用,它正使用的共享庫以及其它的。
建議看看《Linux就該這么學》這本書
Ⅳ linux獲取進程id和進程名稱
linux獲取進程id和進程名稱作為一個共享庫,應該需要統計使用本庫的各種應用程序的使用頻率,使用方法等信息。才能針對主要應用做出更好的改進。
www.dnjsb.com
那麼就需要記錄調用者的進程id或者進程名稱,並且保存下來。保存的動作可以採用共享內存,也可以採用文件,這個在下篇博文描述,本文描述如何獲取進程id和進程名稱。範例:#include
<stdio.h>#include
<unistd.h>#define
CFGMNG_TASK_NAME_LEN
256int
main(){
int
ret;
char
ac_tmp[CFGMNG_TASK_NAME_LEN];
ret
=
cfgmng_get_taskname(ac_tmp,
CFGMNG_TASK_NAME_LEN);
if
(0
!=
ret)
{
printf(Call
cfgmng_get_taskname
fail./n);
return
-1;
}
printf(The
running
task
name
is
%s./n,
ac_tmp);
return
0;}int
cfgmng_get_taskname(char
*ac,
int
len){
int
count
=
0;
int
nIndex
=
0;
char
chPath[CFGMNG_TASK_NAME_LEN]
=
{0};
char
cParam[100]
=
{0};
char
*cTem
=
chPath;
int
tmp_len;
pid_t
pId
=
getpid();
sprintf(cParam,/proc/%d/exe,pId);/*
printf(cParam
=
%s./n,
cParam);*/
count
=
readlink(cParam,
chPath,
CFGMNG_TASK_NAME_LEN);/*
printf(count
=
%d./n,
count);*/
if
(count
<
0
||
count
>=
CFGMNG_TASK_NAME_LEN)
{
printf(Current
System
Not
Surport
Proc./n);
return
-1;
}
else
{
nIndex
=
count
-
1;
for(
;
nIndex
>=
0;
nIndex--)
{
if(
chPath[nIndex]
==
'/'
)//篩選出進程名
{
nIndex++;
cTem
+=
nIndex;
break;
}
}
}
tmp_len
=
strlen(cTem);
if
(0
==
tmp_len)
{
printf(Get
task
fail./n);
return
-1;
}
if
(len
<=
tmp_len
+1)
{
printf(len(%d)
is
less
than
taskname(%s)'s
len./n,
len,
cTem);
return
-1;
}
strcpy(ac,
cTem);
return
0;}從上面的實驗範例可以看出,主要使用的函數是getpid獲取本進程的id,再到/proc/pid/exe
中去找到對應的進程名稱。在/proc目錄中有很多跟進程相關的東西,都可以用這種方法觸類旁通地實現。