国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > CentOS > 正文

CentOS如何運行與控制后臺進程?

2020-06-21 12:47:58
字體:
來源:轉載
供稿:網友

我們經常會碰到這樣的問題,用ssh登錄了遠程的Linux服務器,運行了一些耗時較長的任務,結果卻由于網絡等的不穩定導致任務中途失敗。

這是由于在用戶注銷(logout)或者網絡斷開時,終端會收到 HUP(hangup)信號從而關閉其所有子進程。

解決辦法有兩種:讓進程忽略HUP信號,或讓進程運行在新的會話里從而成為不屬于此終端的子進程。

下面是對Linux下運行與控制后臺進程的各種方法的介紹:

1.nohup

顧名思義,nohup的用途就是讓提交的命令忽略所有的hangup信號。

使用方法:nohup COMMAND [ARG]...

2.setsid

在一個新的會話中運行命令,從而可以避開當前終端發出的HUP信號。

使用方法:setsid COMMAND [ARG]...

3.&

可以結合()產生一個新的子shell并在這個子shell中將任務放置到后臺運行,從而不受當前shell終端的HUP信號影響。

使用方法:(COMMAND [ARG]... &)

而我通常的使用方式為:

nohup ./filename.sh > filename.log 2>&1 &

nohup ./filename.sh &> filename.log &

三點理由:

1)nohup保障進程不會被hangup信號異常中斷;

2)將任務放置到后臺運行,不占用當前的終端;

3)將錯誤輸出也打印到log中,默認>只有標準輸出,錯誤輸出沒有。

4.控制進程

通過以下命令,我們可以對放入到后臺的命令進行控制

查看當前終端下的后臺進程:

直接執行:jobs

將查看到的某個后臺進程放回到前臺:

直接輸入:fg {jobid} //這里的{jobid}是通過jobs命令中看到的進程前[]中的數字。

將當前正在前臺運行的進程放到后臺運行:

先敲下快捷鍵:ctrl +z //暫停當前正在運行的進程。

再執行:bg

終止當前正在前臺運行的進程:

直接敲下快捷鍵:ctrl +c

5.disown

亡羊補牢,為沒有使用nohup與setsid的進程加上忽略HUP信號的功能。

使用方法:

將當前正在前臺運行的進程放到后臺運行;

然后執行disown -h %{jobid} //這里的{jobid}是通過jobs命令中看到的進程前[]中的數字。

6.通過screen來實現穩定的后臺運行

screen是建立一個新的全屏虛擬會話終端,這個會話只有在手動輸入exit的時候才會退出,在這個會話里執行的命令不用擔心HUP信號會對我們的進程 造成影響,因此也不用給每個命令前都加上“nohup”或“setsid”了,非常適合我們有規劃的執行大量的后臺任務,可以非常方便的讓我們對這些后臺 任務進行管理。

使用方法:

screen //立即創建并進入一個會話。

screen -dmS {name} //建立一個處于斷開模式下的會話,并根據我們的需要指定其會話名稱。

screen -list //列出所有會話。

screen -r {name} //以獨占方式進入指定會話。

screen -x {name} //以并行方式進入指定會話。

ctrl +ad //輸入快捷鍵ctrl +a和d,可暫時退出當前會話。

exit //進入指定會話后執行exit即可關閉該會話。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文化| 新源县| 高唐县| 临邑县| 奎屯市| 凯里市| 兴仁县| 大冶市| 邵阳市| 林西县| 固始县| 淳化县| 伊通| 什邡市| 青铜峡市| 兴国县| 建阳市| 桦南县| 合肥市| 酉阳| 苍梧县| 修水县| 湟源县| 临湘市| 银川市| 兴山县| 霍州市| 光山县| 栾川县| 高要市| 马尔康县| 鄂托克前旗| 沙田区| 保亭| 绵阳市| 扬州市| 盱眙县| 沐川县| 屏南县| 瑞丽市| 奎屯市|