當前位置:首頁 » 操作系統 » linux進程打開

linux進程打開

發布時間: 2022-09-12 03:34:28

1. linux啟動一個進程的過程

Linux 中的每個進程都存在於「進程樹」中。你可以通過運行 pstree 命令查看進程樹。樹的根是 init,進程號是 1。每個進程(init 除外)都有一個父進程,一個進程都可以有很多子進程。

所以,假設我要啟動一個名為 ls 的進程來列出一個目錄。我是不是只要發起一個進程 ls 就好了呢?不是的。

我要做的是,創建一個子進程,這個子進程是我(me)本身的一個克隆,然後這個子進程的「腦子」被吃掉了,變成 ls。

開始是這樣的:

然後運行 fork(),生成一個子進程,是我(me)自己的一份克隆:

然後我讓該子進程運行 exec("ls"),變成這樣:

當 ls 命令結束後,我幾乎又變回了我自己:

在這時 ls 其實是一個僵屍進程。這意味著它已經死了,但它還在等我,以防我需要檢查它的返回值(使用 wait 系統調用)。一旦我獲得了它的返回值,我將再次恢復獨自一人的狀態。

上文提到的「腦子被吃掉」是什麼意思呢?
進程有很多屬性:

當你運行 execve 並讓另一個程序吃掉你的腦子的時候,實際上幾乎所有東西都是相同的! 你們有相同的環境變數、信號處理程序和打開的文件等等。

唯一改變的是,內存、寄存器以及正在運行的程序,這可是件大事。

為何 fork 並非那麼耗費資源(寫入時復制)
你可能會問:「如果我有一個使用了 2GB 內存的進程,這是否意味著每次我啟動一個子進程,所有 2 GB 的內存都要被復制一次?這聽起來要耗費很多資源!」

事實上,Linux 為 fork() 調用實現了寫時復制 on write,對於新進程的 2GB 內存來說,就像是「看看舊的進程就好了,是一樣的!」。然後,當如果任一進程試圖寫入內存,此時系統才真正地復制一個內存的副本給該進程。如果兩個進程的內存是相同的,就不需要復制了

當子進程終結時,它會通知父進程,並清空自己所佔據的內存,並在內核里留下自己的退出信息(exit code,如果順利運行,為0;如果有錯誤或異常狀況,為>0的整數)。在這個信息里,會解釋該進程為什麼退出。父進程在得知子進程終結時,有責任對該子進程使用wait系統調用。這個wait函數能從內核中取出子進程的退出信息,並清空該信息在內核中所佔據的空間。但是,如果父進程早於子進程終結,子進程就會成為一個孤兒(orphand)進程。孤兒進程會被過繼給init進程,init進程也就成了該進程的父進程。init進程負責該子進程終結時調用wait函數。

當然,一個糟糕的程序也完全可能造成子進程的退出信息滯留在內核中的狀況(父進程不對子進程調用wait函數),這樣的情況下,子進程成為僵屍(zombie)進程。當大量僵屍進程積累時,內存空間會被擠占。

2. linux系統下如何從後台啟動進程.

你得查看後台存在的進程 #jobs

#fg

#bg

兩個命令是調入前台和後台的命令

在命令後面加上一個 &
比如:
rm -rf /tmp/ &
linux 技巧:讓進程在後台可靠運行的幾種方法
weibogoogle+用電子郵件發送本頁面
我們經常會碰到這樣的問題,用 telnet/ssh 登錄了遠程的 linux 伺服器,運行了一些耗時較長的任務, 結果卻由於網路的不穩定導致任務中途失敗。如何讓命令提交後不受本地關閉終端窗口/網路斷開連接的干擾呢?下面舉了一些例子, 您可以針對不同的場景選擇不同的方式來處理這個問題。

3. 如何查看linux進程啟動方式

1、查看進程「打開」的文件 (方法1):
1)pidof programe-name(獲得想了解的進程(programe-name)的PID)
或ps -aux|grep programe-name(獲得想了解的進程(programe-name)的PID)
找出進程的PID
2)cd /proc/$PID/fd(會看見文件描述符)
3)ls -l 得到文件描述符指向的實際文件,即當前進程打開的文件
2、查看進程「打開」的文件 (方法2):
1)獲得想了解的進程的PID方法同上
2)lsof -c programe-name
或lsof -p $PID

4. linux查看進程命令

1、首先打開xshell軟體,連接上linux伺服器,使用指令ps查看系統進程,參數a表示全部,u表示以用戶格式顯示,x表示進程參數。

5. linux 查看文件被哪個進程打開

可以使用:ps -fe|grep filename,
也可以使用:fuser filename查看
然後可以看這個進程跟哪裡東西有關聯,使用了哪些埠
只查看該進程:ps -ef | grep ID
查看該進程打開的文件:lsof -p ID
查看內存分配:lcat /proc/ID/maps
查看堆棧:pstack 11ID
查看發出的系統調用:strace -p ID
查看調用庫函數:ltrace -p ID

6. linux下怎麼查看某個進程打開了哪些文件

1.只查看該進程:ps
-ef
|
grep
11345
2.查看該進程打開的文件:lsof
-p
11345
3.查看內存分配:lcat
/proc/11345/maps
4.查看堆棧:pstack
11345
5.查看發出的系統調用:strace
-p
11345
6.查看調用庫函數:ltrace
-p
11345

7. linux中進程的三種啟動方式

太過簡短了.不太明白是什麼意思.
前幾天在一個考材上看到. linux的服務有三種啟動方式.
1 init
2 /etc/rcX.d
3 xinetd
我想由用戶從 shell啟動應該怎麼也算是一種吧. 我對基本概念都不怎麼清楚.

8. 怎麼看文件被那個進程打開 linux

1、查看進程「打開」的文件
(方法1):
1)pidof
programe-name(獲得想了解的進程(programe-name)的pid)
或ps
-aux|grep
programe-name(獲得想了解的進程(programe-name)的pid)
找出進程的pid
2)cd
/proc/$pid/fd(會看見文件描述符)
3)ls
-l
得到文件描述符指向的實際文件,即當前進程打開的文件
2、查看進程「打開」的文件
(方法2):
1)獲得想了解的進程的pid方法同上
2)lsof
-c
programe-name
或lsof
-p
$pid

9. Linux查看進程打開多少文件描述符命令

可用lsof命令,可以列出被進程所打開的文件的信息。被打開的文件可以是:

1普通的文件,2.目錄 3.網路文件系統的文件,4.字元設備文件 5.(函數)共享庫 6.管道,命名管道 7.符號鏈接 8.底層的socket字流,網路socket,unix域名socket 各個命令的詳細介紹可看下「Linux命令大全」

10. Linux啟動進程的命令

linux啟動進程的命令可以用sh,python ,./文件名。
下面是有關進程的操作:
1.查進程
ps命令查找與進程相關的PID號:
ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
ps -A 顯示所有程序。
ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
ps -e 此參數的效果和指定"A"參數相同。
ps e 列出程序時,顯示每個程序所使用的環境變數。
ps f 用ASCII字元顯示樹狀結構,表達程序間的相互關系。
ps -H 顯示樹狀結構,表示程序間的相互關系。
ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
ps s 採用程序信號的格式顯示程序狀況。
ps S 列出程序時,包括已中斷的子程序資料。
ps -t<終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。
ps u 以用戶為主的格式來顯示程序狀況。
ps x 顯示所有程序,不以終端機來區分。

最常用的方法是ps aux,然後再通過管道使用grep命令過濾查找特定的進程,然後再對特定的進程進行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat

ps -ef|grep java|grep -v grep 顯示出所有的java進程,去處掉當前的grep進程。
2.殺進程
使用kill命令結束進程:kill xxx
常用:kill -9 324
Linux下還提供了一個killall命令,可以直接使用進程的名字而不是進程標識號,例如:# killall -9 NAME
1. 更改檔案擁有者
命令 : chown [-cfhvR] [--help] [--version] user[:group] file...
功能 : 更改文件或者文件夾的擁有者
參數格式 :
user : 新的檔案擁有者的使用者 IDgroup : 新的檔案擁有者的使用者群體(group)
-c : 若該檔案擁有者確實已經更改,才顯示其更改動作
-f : 若該檔案擁有者無法被更改也不要顯示錯誤訊息
-h : 只對於連結(link)進行變更,而非該 link 真正指向的檔案
-v : 顯示擁有者變更的詳細資料
-R : 對目前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞回的方式逐個變更)

例如:chown -R oracle:oinstall /oracle/u01/app/oracle
更改目錄擁有者為oracle

2. 修改許可權
命令:chmod (change mode)
功能:改變文件的讀寫和執行許可權。有符號法和八進制數字法。
選項:(1)符號法:
命令格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename
u (user) 表示用戶本人。
g (group) 表示同組用戶。
o (oher) 表示其他用戶。
a (all) 表示所有用戶。
+ 用於給予指定用戶的許可許可權。
- 用於取消指定用戶的許可許可權。
= 將所許可的許可權賦給文件。
r (read) 讀許可,表示可以拷貝該文件或目錄的內容。
w (write) 寫許可,表示可以修改該文件或目錄的內容。
x (execute)執行許可,表示可以執行該文件或進入目錄。

(2)八進制數字法:
命令格式:chmod abc file
其中a,b,c各為一個八進制數字,分別表示User、Group、及Other的許可權。
4 (100) 表示可讀。
2 (010) 表示可寫。
1 (001) 表示可執行。
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5。

例如:# chmod a+rx filename
讓所有用戶可以讀和執行文件filename。
# chmod go-rx filename
取消同組和其他用戶的讀和執行文件filename的許可權。
# chmod 741 filename
讓本人可讀寫執行、同組用戶可讀、其他用戶可執行文件filename。
# chmod -R 755 /home/oracle
遞歸更改目錄許可權,本人可讀寫執行、同組用戶可讀可執行、其他用戶可讀可執行

3. 修改文件日期
命令:touch
格式:touch filenae
功能:改變文件的日期,不對文件的內容做改動,若文件不存在則建立新文件。
例如:% touch file

4. 鏈接文件
命令:ln (link)
格式:ln [option] filename linkname
ln [option] directory pathname
功能:為文件或目錄建立一個鏈。其中,filename和directory是源文件名和
源目錄名;linkname和pathname分別表示與源文件或源目錄名相鏈接的
文件或目錄。
選項:-s 為文件或目錄建立符號鏈接。不加-s表示為文件或目錄建立硬鏈接
注釋:鏈接的目地在於,對一個文件或目錄賦予兩個以上的名字,使其可以出
現在不同的目錄中,既可以使文件或目錄共享,又可以節省磁碟空間。
例如:% ln -s filename linkname

5. 顯示日期
命令:date
例如:% date

6. 顯示日歷
命令:cal (calendar)
格式:cal [month] year
功能:顯示某年內指定的日歷
例如:% cal 1998

7. 顯示文件頭部
命令:head
格式:head [option] filename
功能:顯示文件的頭部
選項:預設 顯示文件的頭10行。
-i 顯示文件的開始 i行。
例如:% head filename

8. 顯示文件尾部
命令:tail
格式:tail [option] filename
功能:顯示文件的尾部
選項:預設 顯示文件的末10行。
-i 顯示文件最後 i行。
+i 從文件的第i行開始顯示。
例如:% tail filename

9. 顯示用戶標識
命令:id
格式:id [option] [user]
功能:顯示用戶標識及用戶所屬的所有組。
選項:-a 顯示用戶名、用戶標識及用戶所屬的所有組
注釋:
例如:% id username

10. 查看當前登錄的用戶
命令:users

11. 顯示都誰登錄到機器上
命令:who
格式:who
功能:顯示當前正在系統中的所有用戶名字,使用終端設備號,注冊時間。
例如:% who

12. 顯示當前終端上的用戶名
命令:whoami
格式:whoami
功能:顯示出當前終端上使用的用戶。
例如:% whoami

13. 尋找文件
命令:find
格式:find pathname [option] expression
功能:在所給的路經名下尋找符合表達式相匹配的文件。
選項:-name 表示文件名
-user 用戶名,選取該用戶所屬的文件
-size 按大小查找,以block為單位,一個block是512B
-mtime n 按最後一次修改時間查找,選取n天內被修改的文件
-perm 按許可權查找
-type 按文件類型查找
-atime 按最後一次訪問時間查找

例如:% find ./ -name '*abc*' -print

14. 搜索文件中匹配符
命令:grep
格式:grep [option] pattern filenames
功能:逐行搜索所指定的文件或標准輸入,並顯示匹配模式的每一行。
選項:-i 匹配時忽略大小寫
-v 找出模式失配的行

例如:% grep -i 'java*' ./test/run.sh

15. 統計文件字數
命令:wc [option] filename
功能:統計文件中的文件行數、字數和字元數。
選項:-l 統計文件的行數
-w 統計文件的單詞數
-c 統計文件的字元數
注釋:若預設文件名則指標准輸入
例如:% wc -c ./test/run.sh

熱點內容
如何在手機上看無限流量密碼 發布:2025-05-14 23:43:31 瀏覽:113
19投籃腳本 發布:2025-05-14 23:36:57 瀏覽:513
編譯器怎麼處理c變長數組 發布:2025-05-14 23:31:46 瀏覽:663
存摺每天可以輸錯多少次密碼 發布:2025-05-14 23:22:06 瀏覽:908
安卓手機怎麼找微信隱藏對話 發布:2025-05-14 23:07:47 瀏覽:338
怎麼查看泰拉伺服器ip 發布:2025-05-14 23:03:29 瀏覽:74
c語言學生成績查詢系統 發布:2025-05-14 22:58:30 瀏覽:6
怎麼進別人的伺服器 發布:2025-05-14 22:45:55 瀏覽:774
用編程寫音樂 發布:2025-05-14 22:45:08 瀏覽:783
如何識別電腦的網路配置 發布:2025-05-14 22:38:46 瀏覽:849