linux進程id
『壹』 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查看進程命令如下:
操作設備:戴爾筆記本電腦
操作系統:win10
操作程序:xshell軟體
1、首先打開xshell軟體,連接上linux伺服器,使用指令ps查看系統進程,參數a表示全部,u表示以用戶格式顯示,x表示進程參數。
『叄』 2018-06-21 linux查看父進程id
環境 docker alpine
ps -efo "comm,pid,ppid,pgid,args"
args必須放在其他參數之後
linux中有時父進程結束後,子進程,以及子進程的子進程是無法結束的。
node -e "require('terminate')(2579)"
terminate是nodejs的一個模塊
pm2 start /usr/local/lib/node_moles/visop/bin/visop-start -i 1 -n visopadmin -- -f
--後面跟的是腳本的參數
netstat -anp|grep 8050
netstat -anp|grep 8050|awk '{print $NF}'|grep -o [0-9]*
NF為awk中每一行的列數
『肆』 linux 獲取進程id 函數
linux C中,獲取當前進程id 函數為getpid() ;
頭文件:#include<unistd.h>
函數原型:pid_tgetpid(void);
函數說明:getpid()用來取得目前進程的進程id,許多程序利用取到的此值來建立臨時文件,以避免臨時文件相同帶來的問題。
返回值:目前進程的進程id
範例
#include<stdio.h>
#include<unistd.h>
main()
{
printf("pid=%d ",getpid());
}
執行:
pid=1494/*每次執行結果都不一定相同*/
『伍』 linux進程id自增是什麼原因
這個應該是Linux系統進程創建規則決定的,一個進程肯定只能有一個ID,並且不同的進程不能有相同的ID,否則就無法分辨對應ID是哪個進程了,所以,當心出現一個進程時,會指定一個新的進程,至於這個進程ID是什麼,那就跟你的Linux系統版本有關了,最簡單的做法,自然是進程ID自增了,這樣比較方便管理進程ID。
樓主如果對Linux系統感興趣,想學習更多Linux系統知識,可以網路《Linux就該這么學》,不錯的一本Linux入門教程。
『陸』 Linux裡面pid是什麼
pid就是程序運行後,在系統中自動產生的進程id號的簡稱
『柒』 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目錄中有很多跟進程相關的東西,都可以用這種方法觸類旁通地實現。
『捌』 linux下查看進程內存的方法
現有一個進程id為「11529」,想要查詢該進程佔用的內存大小。
方法一:cat /proc/11529/status
方法二:pmap -x 11529
方法三:top -n 1 | grep 11529 | awk '{print $5}'
方法四:ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 11529 | awk '{print $5}'
現有一個進程name為「sensechess-app」,想要查詢該進程佔用的內存大小。
自開發的的腳本工具 - sysMonitor.zip,可監控系統或者某個進程的CPU、MEM、DISK的使用情況.
示例: