當前位置:首頁 » 操作系統 » linux重啟進程

linux重啟進程

發布時間: 2022-05-10 23:30:06

1. linux如何查進程,殺進程,重啟進程

查找進程
ps -ef | grep -v grep | grep "XXXXX"
殺進程
kill -9 `ps -ef | grep -v grep | grep XXXXX | awk '{print $2}'`
重起
service XXXX restart

2. Linux啟動進程的方法有哪些

有手動啟動和調度啟動兩種方法,其中調度啟動常用的命令為at、batch和crontab. 希賽里看來的資料,希望對你有幫助!

3. linux如何查進程、殺進程,重啟進程

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.殺進程 顯示CPU使用情況以及部分進程:top 顯示連接埠使用進程:netstat -noap/-an |grep NAME 使用kill命令結束進程:kill xxx 常用:kill -9 324 Linux下還提供了一個killall命令,可以直接使用進程的名字而不是進程標識號,例如:# killall -9 NAME 3.進入到進程的執行文件所在的路徑下,執行文件 ./文件名 附: 這是本人花了兩天時間整理得來的,一些最常用的地球人都知道的命令就省去啦!最後提供pdf手冊下載 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 16. 顯示磁碟空間 命令:df (disk free) 格式:df [option] 功能:顯示磁碟空間的使用情況,包括文件系統安裝的目錄名、塊設備名、總 位元組數、已用位元組數、剩餘位元組數佔用百分比。 選項: -a:顯示全部的檔案系統和各分割區的磁碟使用情形 -i:顯示i -nodes的使用量 -k:大小用k來表示 (默認值) -t:顯示某一個檔案系統的所有分割區磁碟使用量 -x:顯示不是某一個檔案系統的所有分割區磁碟使用量 -T:顯示每個分割區所屬的檔案系統名稱 -h: 表示使用「Human-readable」的輸出,也就是在檔案系統大小使用 GB、MB 等易讀的格式。 注釋: 例如:% df -hi 17. 查詢檔案或目錄的磁碟使用空間 命令: (disk usage) 格式: [option] [filename] 功能:以指定的目錄下的子目錄為單位,顯示每個目錄內所有檔案所佔用的磁碟空間大小 選項: -a:顯示全部目錄和其次目錄下的每個檔案所佔的磁碟空間 -b:大小用bytes來表示 (默認值為k bytes) -c:最後再加上總計 (默認值) -s:只顯示各檔案大小的總合 -x:只計算同屬同一個檔案系統的檔案 -L:計算所有的檔案大小 -h: 表示檔案系統大小使用 GB、MB 等易讀的格式。 例如:% -a % -sh /etc 只顯示該目錄的總合 % /etc | sort -nr | more 統計結果用sort 指令進行排序, sort 的參數 -nr 表示要以數字排序法進行反向排序。 18. 顯示進程 命令:ps 格式:ps [option] 功能:顯示系統中進程的信息。包括進程ID、控制進程終端、執行時間和命令。 選項: -a 顯示所有進程信息 -U uidlist 列出這個用戶的所有進程 -e 顯示當前運行的每一個進程信息 -f 顯示一個完整的列表 -x 顯示包括沒有終端控制的進程狀況 。 注釋: 例如:% ps -ef % ps -aux 然後再利用一個管道符號導向到grep去查找特定的進程,然後再對特定的進程進行操作。 19. 終止進程 命令:kill 格式:kill [option] pid 功能:向指定的進程送信號或終止進程。kill指令的用途是送一個signal給某一個process, 因為大部份送的都是用來殺掉 process 的 SIGKILL 或 SIGHUP ,因此稱為 kill 選項:-9 強行終止進程 注釋:pid標示進程號,可由ps命令得到。 例如:% kill -9 pid 你也可以用 kill -l 來察看可代替 signal 號碼的數目字。kill 的詳細情形請參閱 man kill。 20. 查看自己的IP地址 命令:ifconfig 格式:ifconfig -a 21. 查看路由表 命令:netstat 格式:netstat -rn 22. 遠程登錄 命令:telnet 格式:telnet hostname 23. 文件傳輸 命令:ftp (file transfer program) 格式:ftp hostname 功能:網路文件傳輸及遠程操作。 選項:ftp命令: cd [dirname] 進入遠程機的目錄 lcd [dirname] 設置本地機的目錄 dir/ls 顯示遠程的目錄文件 bin 以二進制方式進行傳輸 asc 以文本文件方式進行傳輸 get/mget 從遠程機取一個或多個文件 put/mput 向遠程機送一個或多個文件 prompt 打開或關閉多個文件傳送時的交互提示 close 關閉與遠程機的連接 quit 退出ftp !/exit ftp登陸狀態下,!表示暫時退出ftp狀態回到本地目錄,exit表示返回ftp狀態 注釋: 例如:% ftp hostname 24. 查看自己的電子郵件 命令:mailx 格式:mailx 選項: delete 刪除 next 下一個 quit 退出 reply 回復 25. 回憶命令 命令:history 格式:history 功能:幫助用戶回憶執行過的命令。 選項: 注釋: 例如:% history 26. 網上對話 命令:talk 格式:talk username 功能:在網上與另一用戶進行對話。 選項: 注釋:對話時系統把終端分為上下兩部分,上半部顯示自己鍵入信息,下半部 顯示對方用戶鍵入的信息。鍵入delete或Ctrl+C則結束對話。 例如:% talk username 27. 允許或拒絕接受信息 命令:mesg (message) 格式:mesg [n/y] 功能:允許或拒絕其它用戶向自己所用的終端發送信息。 選項:n 拒絕其它用戶向自己所用的終端寫信息 y 允許其它用戶向自己所用的終端寫信息(預設值) 注釋: 例如:% mesg n 28. 給其他用戶寫信息 命令:write 格式:write username [ttyname] 功能:給其他用戶的終端寫信息。 選項: 注釋:若對方沒有拒絕,兩用戶可進行交談,鍵入EOF或Ctrl+C則結束對話。 例如:write username 29. 創建、修改、刪除用戶和群組 a. 創建群組: 例如: groupadd oinstall 創建群組名為oinstall的組 groupadd -g 344 dba 創建組號是344的組,此時在/etc/passwd文件中產生一個組ID(GID)是344的項目。 b. 修改群組: groupmod:該命令用於改變用戶組帳號的屬性 groupmod –g 新的GID 用戶組帳號名 groupmod –n 新組名 原組名:此命令由於改變用戶組的名稱 c. 刪除群組: groupdel 組名:該命令用於刪除指定的組帳號 d. 新建用戶: 命令: useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name 主要參數 -c:加上備注文字,備注文字保存在passwd的備注欄中。 -d:指定用戶登入時的啟始目錄。 -D:變更預設值。 -e:指定賬號的有效期限,預設表示永久有效。 -f:指定在密碼過期後多少天即關閉該賬號。 -g:指定用戶所屬的群組。 -G:指定用戶所屬的附加群組。 -m:自動建立用戶的登入目錄。 -M:不要自動建立用戶的登入目錄。 -n:取消建立以用戶名稱為名的群組。 -r:建立系統賬號。 -s:指定用戶登入後所使用的shell。 -u:指定用戶ID號。 舉例: # useradd -g oinstall -G dba oracle 創建Oracle用戶 e. 刪除用戶 命令: userdel 用戶名 刪除指定的用戶帳號 userdel –r 用戶名(userdel 用戶名;rm 用戶名):刪除指定的用戶帳號及宿主目錄 例:#useradd -g root kkk //把kkk用戶加入root組里 f. 修改用戶 命令: usermod 修改已有用戶的信息 usermod –l 舊用戶名 新用戶名: 修改用戶名 usermod –L 用戶名: 用於鎖定指定用戶賬號,使其不能登陸系統 usermod –U 用戶名: 對鎖定的用戶帳號進行解鎖 passwd –d 用戶名: 使帳號無口令,即用戶不需要口令就能登錄系統 例:#usermod -l user2 user1 //把用戶user2改名為user1 30. 啟動、關閉防火牆 永久打開或則關閉 chkconfig iptables on chkconfig iptables off 即時生效:重啟後還原 service iptables start service iptables stop 或者: /etc/init.d/iptables start /etc/init.d/iptables stop 31. 啟動VSFTP服務 即時啟動: /etc/init.d/vsftpd start 即時停止: /etc/init.d/vsftpd stop 開機默認VSFTP服務自動啟動: 方法一:(常用\方便) [root@localhost etc]# chkconfig --list|grep vsftpd ( 查看情況) vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@localhost etc]# chkconfig vsftpd on (執行ON設置) 或者:方法二: 修改文件 /etc/rc.local , 把行/usr/local/sbin/vsftpd & 插入文件中,以實現開機自動啟動。 32. vi技巧 a. 進入輸入模式 新增(append) a :從游標所在位置後面開始新增資料,游標後的資料隨新增資料向後移動。 A:從游標所在列最後面的地方開始新增資料。 插入(insert) i:從游標所在位置前面開始插入資料,游標後的資料隨新增資料向後移動。 I :從游標所在列的第一個非空白字元前面開始插入資料。 開始(open) o :在游標所在列下新增一列並進入輸入模式。 O: 在游標所在列上方新增一列並進入輸入模式。 b. 退出vi 在指令模式下鍵入:q,:q!,:wq或:x(注意:號),就會退出vi。其中:wq和:x是存檔退出,而:q是直接退出,如果文件已有新的變化,vi會提示你保存文件而:q命令也會失效,這時你可以用:w命令保存文件後再用:q 退出,或用:wq或:x命令退出,如果你不想保存改變後的文件,你就需要用:q!命令,這個命令將不保存文件而直接退出vi。 c. 刪除與修改文件的命令: x:刪除游標所在字元。 dd :刪除游標所在的列。 r :修改游標所在字元,r 後接著要修正的字元。 R:進入取替換狀態,新增文字會覆蓋原先文字,直到按 [ESC] 回到指令模式下為止。 s:刪除游標所在字元,並進入輸入模式。 S:刪除游標所在的列,並進入輸入模式。 d. 屏幕翻滾類命令 Ctrl+u: 向文件首翻半屏 Ctrl+d: 向文件尾翻半屏 Ctrl+f: 向文件尾翻一屏 Ctrl+b: 向文件首翻一屏 nz: 將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。

4. Linux啟動新進程的幾種方法及比較

有時候,我們需要在自己的程序(進程)中啟動另一個程序(進程)來幫助我們完成一些工作,那麼我們需要怎麼才能在自己的進程中啟動其他的進程呢?在Linux中提供了不少的方法來實現這一點,下面就來介紹一個這些方法及它們之間的區別。一、system函數調用 system函數的原型為: #include <stdlib.h> int system (const char *string);它的作用是,運行以字元串參數的形式傳遞給它的命令並等待該命令的完成。命令的執行情況就如同在shell中執行命令:sh -c string。如果無法啟動shell來運行這個命令,system函數返回錯誤代碼127;如果是其他錯誤,則返回-1。否則,system函數將返回該命令的退出碼。 注意:system函數調用用一個shell來啟動想要執行的程序,所以可以把這個程序放到後台中執行,這里system函數調用會立即返回。 可以先先下面的例子,源文件為new_ps_system.c,代碼如下: #include <stdlib.h> #include <stdio.h> int main() { printf("Running ps with system\n"); //ps進程結束後才返回,才能繼續執行下面的代碼 system("ps au");// 1 printf("ps Done\n"); exit(0); }該程序調用ps程序列印所有與本用戶有關的進程,最後才列印ps Done。運行結果如下: 如果把注釋1的語句改為:system("ps au &");則system函數立即返回,不用等待ps進程結束即可執行下面的代碼。所以你看到的輸出,ps Done可能並不是出現在最後一行,而是在中間。 一般來說,使用system函數不是啟動其他進程的理想手段,因為它必須用一個shell來啟動需要的程序,即在啟動程序之前需要先啟動一個shell,而且對shell的環境的依賴也很大,因此使用system函數的效率不高。 二、替換進程映像——使用exec系列函數 exec系列函數由一組相關的函數組成,它們在進程的啟動方式和程序參數的表達方式上各有不同。但是exec系列函數都有一個共同的工作方式,就是把當前進程替換為一個新進程,也就是說你可以使用exec函數將程序的執行從一個程序切換到另一個程序,在新的程序啟動後,原來的程序就不再執行了,新進程由path或file參數指定。exec函數比system函數更有效。 exec系列函數的類型為: #include <unistd.h> char **environ; int execl (const char *path, const char *arg0, ..., (char*)0); int execlp(const char *file, const char *arg0, ..., (char*)0); int execle(const char *path, const char *arg0, ..., (char*)0, char *const envp[]); int execv (const char *path, char *const argv[]); int execvp(cosnt char *file, char *const argv[]); int execve(const char *path, char *const argv[], char *const envp[]);這類函數可以分為兩大類,execl、execlp和execle的參數是可變的,以一個空指針結束,而execv、execvp和execve的第二個參數是一個字元串數組,在調用新進程時,argv作為新進程的main函數的參數。而envp可作為新進程的環境變數,傳遞給新的進程,從而變數它可用的環境變數。 承接上一個例子,如果想用exec系統函數來啟動ps進程,則這6個不同的函數的調用語句為: 註:arg0為程序的名字,所以在這個例子中全為ps。 char *const ps_envp[] = {"PATH=/bin:usr/bin", "TERM=console", 0}; char *const ps_argv[] = {"ps", "au", 0}; execl("/bin/ps", "ps", "au", 0); execlp("ps", "ps", "au", 0); execle("/bin/ps", "ps", "au", 0, ps_envp); execv("/bin/ps", ps_argv); execvp("ps", ps_argv); execve("/bin/ps", ps_argv, ps_envp);下面我給出一個完整的例子,源文件名為new_ps_exec.c,代碼如下: #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main() { printf("Running ps with execlp\n"); execlp("ps", "ps", "au", (char*)0); printf("ps Done"); exit(0); }運行結果如下: 細心的話,可以發現,最後的ps Done並沒有輸出,這是偶然嗎?並不是,因為我們並沒有再一次返回到程序new_ps_exec.exe上,因為調用execlp函數時,new_ps_exec.exe進程被替換為ps進程,當ps進程結束後,整個程序就結束了,並沒有回到原來的new_ps_exec.exe進程上,原本的進程new_ps_exec.exe不會再執行,所以語句printf("ps Done");根本沒有機會執行。 注意,一般情況下,exec函數是不會返回的,除非發生錯誤返回-1,由exec啟動的新進程繼承了原進程的許多特性,在原進程中已打開的文件描述符在新進程中仍將保持打開,但任何在原進程中已打開的目錄流都將在新進程中被關閉。 三、復制進程映像——fork函數1、fork函數的應用 exec調用用新的進程替換當前執行的進程,而我們也可以用fork來復制一個新的進程,新的進程幾乎與原進程一模一樣,執行的代碼也完全相同,但新進程有自己的數據空間、環境和文件描述符。 fork函數的原型為: #include <sys/type.h> #include <unistd.h> pid_t fork();註:在父進程中,fork返回的是新的子進程的PID,子進程中的fork返回的是0,我們可以通過這一點來判斷父進程和子進程,如果fork調用失敗,它返回-1. 繼承上面的例子,下面我給出一個調用ps的例子,源文件名為new_ps_fork.c,代碼如下: #include <unistd.h> #include <sys/types.h> #include <stdio.h> #include <stdlib.h> int main() { pid_t pid = fork(); switch(pid) { case -1: perror("fork failed"); exit(1); break; case 0: //這是在子進程中,調用execlp切換為ps進程 printf("\n"); execlp("ps", "ps", "au", 0); break; default: //這是在父進程中,輸出相關提示信息 printf("Parent, ps Done\n"); break; } exit(0); }輸出結果為: 我們可以看到,之前在第二點中沒有出現的ps Done是列印出來了,但是順序卻有點不對,這是因為,父進程先於子程序執行,所以先輸出了Parent, ps Done,那有沒有辦法讓它在子進程輸出完之後再輸出,當然有,就是用wait和waitpid函數。注意,一般情況下,父進程與子進程的生命周期是沒有關系的,即便父進程退出了,子進程仍然可以正常運行。 2、等待一個進程 wait函數和waitpid函數的原型為: #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *stat_loc); pid_t waitpid(pid_t pid, int *stat_loc, int options);wait用於在父進程中調用,讓父進程暫停執行等待子進程的結束,返回子進程的PID,如果stat_loc不是空指針,狀態信息將被寫入stat_loc指向的位置。 waitpid等待進程id為pid的子進程的結束(pid為-1,將返回任一子進程的信息),stat_loc參數的作用與wait函數相同,options用於改變waitpid的行為,其中有一個很重要的選項WNOHANG,它的作用是防止waippid調用者的執行掛起。如果子進程沒有結束或意外終止,它返回0,否則返回子進程的pid。 改變後的程序保存為源文件new_ps_fork2.c,代碼如下: #include <unistd.h> #include <sys/types.h> #include <stdio.h> #include <stdlib.h> int main() { pid_t pid = fork(); int stat = 0; switch(pid) { case -1: perror("fork failed"); exit(1); break; case 0: //這是在子進程中,調用execlp切換為ps進程 printf("\n"); execlp("ps", "ps", "au", 0); break; default: //這是在父進程中,等待子進程結束並輸出相關提示信息 pid = wait(&stat); printf("Child has finished: PID = %d\n", pid); //檢查子進程的退出狀態 if(WIFEXITED(stat)) printf("Child exited with code %d\n", WEXITSTATUS(stat)); else printf("Child terminated abnormally\n"); printf("Parent, ps Done\n"); break; } exit(0); }輸出為: 可以看到這次的輸出終於正常了,Parent的輸出也在子進程的輸出之後。 總結——三種啟動新進程方法的比較 首先是最簡單的system函數,它需要啟動新的shell並在新的shell是執行子進程,所以對環境的依賴較大,而且效率也不高。同時system函數要等待子進程的返回才能執行下面的語句。 exec系統函數是用新的進程來替換原先的進程,效率較高,但是它不會返回到原先的進程,也就是說在exec函數後面的所以代碼都不會被執行,除非exec調用失敗。然而exec啟動的新進程繼承了原進程的許多特性,在原進程中已打開的文件描述符在新進程中仍將保持打開,但需要注意,任何在原進程中已打開的目錄流都將在新進程中被關閉。 fork則是用當前的進程來復制出一個新的進程,新進程與原進程一模一樣,執行的代碼也完全相同,但新進程有自己的數據空間、環境變數和文件描述符,我們通常根據fork函數的返回值來確定當前的進程是子進程還是父進程,即它並不像exec那樣並不返回,而是返回一個pid_t的值用於判斷,我們還可以繼續執行fork後面的代碼。

5. linux中如何重啟某一進程

1、首先使用ps -ef查找進程的執行語句並保留它;這個的目的是保留進程執行的參數不變;
例如重啟單個mongodb的過程:
查找:ps -ef|grep mongod
獲得:
root 2928 2903 0 14:51 pts/0 00:00:00 grep /usr/local/mongodb/bin/mongod --config /etc/mongodb.cnf
2、使用kill -9 PID殺掉該進程;
kill -9 2928
3、使用保留的進程語句重啟進程;

/usr/local/mongodb/bin/mongod --config /etc/mongodb.cnf

6. LINUX如何實現進程殺死後重新啟動

HOHO相當有難度的問題。

首先,我想知道的是如何叫意外殺死,一切沒有執行完的都算是意外殺死么?我看用shell解決是比較合適的。大致流程如下:

首先我希望你有1234的源代碼,因為我不知道你所謂的意外殺死是什麼情況下意外殺死,比如通過kill來發送信號殺死他。請注意,如果你程序執行出現異常也是通過信號來殺死,不過是內核發送的,而不是你自己來發送的。所以我希望你修改1234的源代碼,在他正常結束的情況下,你最好有個輸出標志標識他正常結束。比如你的程序是C寫的,那麼希望你在正常結束後調用一個printf("success end");這個應該不難。

緊接著,你寫一個shell腳本,這個腳本應該是這樣
絕對路徑/1234 > 絕對路徑/my.txt,以後想啟動這個進程就用這個腳本來啟動。

在希望你寫一個腳本,這個腳本執行ps -le首先查看進程裡面是否還存在1234這個進程,如果有就什麼都不做退出,如果沒有了,那你就檢查my.txt文件看是否是正常結束了,如果正常結束就從cron守護進程的配置文件移除我這個檢測腳本。如果沒有找到 success end的話,那麼就再次啟動。

最後將這個腳本加到cron守護進程的配置文件中,定時啟動它檢測。

有點麻煩,不過這是我能想到的辦法了,也許其它人有更好的辦法。

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

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

8. linux 系統重啟 進程還在

可以通過進程pid重啟某一個進程,方法是用kill命令給進程發送sighup信號,而kill命令是可以用進程pid作為參數的,所以就實現了通過pid重啟進程。

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

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

#fg

#bg

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

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

熱點內容
安卓系統總是被殺後台怎麼辦 發布:2024-10-09 07:11:31 瀏覽:304
花雨庭伺服器如何全屏 發布:2024-10-09 06:39:28 瀏覽:213
密碼查看器怎麼使用 發布:2024-10-09 06:38:55 瀏覽:495
sqlrownum 發布:2024-10-09 06:28:53 瀏覽:383
F模塊驅動器編譯錯誤 發布:2024-10-09 06:06:21 瀏覽:636
腳本亞索集錦 發布:2024-10-09 05:53:30 瀏覽:877
安卓手機格式化後為什麼打不開 發布:2024-10-09 05:52:58 瀏覽:511
雲伺服器可以超級計算機嗎 發布:2024-10-09 05:51:33 瀏覽:17
php基本語法手冊 發布:2024-10-09 05:34:04 瀏覽:819
shell腳本累加 發布:2024-10-09 05:33:41 瀏覽:843