程序 後台程序以及訊號

2022-05-04 00:48:11 字數 1748 閱讀 9985

等待 stdin

[ian@echidna ian]$ (date; cat - >bginput.txt; date)&

[1] 18648

[ian@echidna ian]$ fri nov 11 00:03:28 est 2005

[1]+ stopped ( date; cat - >bginput.txt; date )

[ian@echidna ian]$ fg

( date; cat - >ginput.txt; date )

input data

fri nov 11 00:03:53 est 2005

[ian@echidna ian]$ cat bginput.txt

input data

nohup

nohup命令用於啟動乙個命令,它將忽略 hangup 訊號並將 stdout 和 stderr 附加到檔案。預設檔案是 nohup.out 或 $home/nohup.out。如果檔案不可寫,那麼命令將不執行。如果希望將輸出傳送到別處,那麼對 stdout 或 stderr 進行重定向。

top

如果需要多次執行ps來檢視變化,那麼可能需要使用top命令。它顯示不斷更新的程序列表,以及有用的總結資訊。

使用 kill 傳送訊號

kill命令向指定的作業或程序傳送訊號。清單顯示使用 sigtstp 和 sigcont 訊號停止並恢復後台作業。使用 sigtstp 訊號相當於使用fg命令將作業帶到前台,然後使用 ctrl-z 暫停它。使用 sigcont 相當於使用bg命令。

清單停止並重新啟動後台作業

[ian@echidna ian]$ kill -s sigtstp %1

[ian@echidna ian]$ jobs -l

[1]+ 21709 stopped nohup sh pmc.sh

[2]- 21719 running nohup bash pmc.sh &

[ian@echidna ian]$ kill -s sigcont %1

[ian@echidna ian]$ jobs -l

[1]+ 21709 running nohup sh pmc.sh &

[2]- 21719 running nohup bash pmc.sh &

nohup命令使程序對於 sighup 訊號「免疫」。一般情況下,程序可以實現訊號處理程式 來捕獲 訊號。所以程序可以實現乙個訊號處理程式來捕獲 sigint 或 sigterm。因為訊號處理程式知道訊號已經傳送了,它可以選擇採取什麼操作,例如忽略 sigint,只在收到 sigterm 時終止程序。

無條件終止程序

某些訊號不能**獲,比如某些硬體異常。sigkill 不能**獲,它會無條件地終止程序。一般來說,只有在其他方式都無法終止程序時才需要傳送這個訊號。

前台程序 後台程序 守護程序

後台程序又叫守護程序,你知道嗎?作業系統中,前台程序和後台程序有什麼區別?特徵是什麼?後台程式基本上不和使用者互動,優先級別稍微低一點 前台的程式和使用者互動,需要較高的響應速度,優先級別稍微高一點 直接從後台手工啟動乙個程序用得比較少一些,除非是該程序甚為耗時,且使用者也不急著需要結果的時候。假設...

linux普通程序,後台程序,守護程序

預設情況下,程序是在前台執行的,這時就把shell給佔據了,我們無法進行其它操作。對於那些沒有互動的程序,很多時候,我們希望將其在後台啟動,可以在啟動引數的時候加乙個 實現這個目的 1 21304 starting zookeeper started 1 done zkserver.sh start...

Oracle後台程序

後台程序主要完成以下任務 在記憶體與外存之間進行i o操作 監視各個程序的狀態 協調各個程序的任務 維護系統的效能 保證系統的可靠性 當oracle資料庫鏈結非正常終止,oracle將通過pmon程序來啟動 清除中斷或失敗的使用者程序,包括清除非正常中斷的使用者程序留下的會話,回退未提交的事務,釋放...