linux查看父進程
① 如何在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下用ps -ef |grep ,結果哪個是進程號
linux下用ps -ef |grep 命令查出的數據第二列(13091)是進程號:
root 13091 12287 0 07:20 pts/1 00:00:00 grep oscard
例如:檢查java 進程是否存在:ps -ef |grep java
查出各個欄位含義如下:
UID PID PPID C STIME TTY TIME CMD
zzw 14124 13991 0 00:38 pts/0 00:00:00 grep --color=auto dae
其中PID(14124)是進程號。
(2)linux查看父進程擴展閱讀
linux下ps -ef | grep 查出的各個欄位含義說明:
1、ID-程序被該 UID 所擁有;
2、PID-就是這個程序的 ID ;
3、PPID-則是其上級父程序的ID;
4、C-CPU使用的資源百分比;
5、STIME-系統啟動時間;
6、TTY-登入者的終端機位置;
7、TIME-使用掉的CPU時間;
8、CMD-所下達的是什麼指令。
③ linux 下查看進程用什麼命令
linux 下查看進程可以使用的命令:
1、ps命令查找與進程相關的PID號:
2、ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
3、ps -A 顯示所有程序。
4、ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
5、ps -e 此參數的效果和指定"A"參數相同。
6、ps e 列出程序時,顯示每個程序所使用的環境變數。
7、ps f 用ASCII字元顯示樹狀結構,表達程序間的相互關系。
8、ps -H 顯示樹狀結構,表示程序間的相互關系。
9、ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
10、ps s 採用程序信號的格式顯示程序狀況。
11、ps S 列出程序時,包括已中斷的子程序資料。
12、ps -t<終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。
13、ps u 以用戶為主的格式來顯示程序狀況。
14、ps x 顯示所有程序,不以終端機來區分。
④ 使用linux編寫C語言程序,如何才能得到進程信息和父進程信息
我覺得這個問題你應該從另外一個方向去考慮,既然b不需要a的資源,那麼就不要在fork之前打開這些資源。
你如,你原來的代碼是
fd
=
open(...);
...
...
fork();
...
...
你現在就應該改成
fork();
if
(parent)
{
......
fd
=
open();
.....
}
else
{
....
}
如果你是要在a進程打開資源,運行了一些東西,得到了足夠的信息才需要調用其他啊程序來做下一步內容,如果按照上面的方法就無法實現了話,你面對的實際是進程間同步和通信的問題。
解決方法也很簡單,隨便通過一種通信機制(signal,pipe,等等),等a進程獲得足夠信息後,再通知b進程執行。比如
a:
fork();
/*
below
code
are
running
in
parent,
a
*/
...
...
fd
=
open();
...
...
notify(b);
/*
use
kill,
send,
etc.
to
notify
child
task
b)
....
b:
wait();
/*
for
example,
while(1)
sleep();
*/
execlp(xxx);
⑤ linux中查看系統當前所有進程的命令是
ps aux為查看系統當前所有進程命令。
工具/原料
VMware Linux 電腦
方法/步驟
1、打開VMware虛擬機,打開終端命令行,通過」su「命令切換到root用戶下。
⑥ linux 查看哪些進程的父進程進程號是1 這個命令怎麼寫
init進程的pid是1
init進程是其他所有進程的父進程。
列出父進程號是1的進程,就是列出除了init外的所有進程。
⑦ linux 下,已知子進程的情況下,列印(顯示)父進程
在Linux下,可以有兩種比較方便的方法:
1. # pstree
通過系統的進程樹來查看某個進程的父進程;
2. # ps -ef |grep <進程名>
在顯示的輸出中,第三列就是該進程的父進程PID,然後可以再使用ps命令來查看父進程的名稱
# ps -ef |grep <父進程PID>
這應該就是你想要的結果吧?
⑧ 如何查看linux後台運行程序的父進程
ps -ef | grep PID
看輸出結果,第三列就是父進程PPID