一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用nohup命令在后臺運行進程

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-05 16:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

nohup命令用于運行程序或者命令,并忽略所有中斷信號SIGHUPSIGHUP是當前控制終端關(guān)閉時發(fā)送到進程的信號。

通常,當您通過SSH運行命令時,如果連接斷開,或者退出SSH,SSH會話將終止在當前TTY啟動的進程。

如果你不想被某一程序被終止,可以使用nohup命令。它將忽略所有中斷信號,啟動的命令程序?qū)⒗^續(xù)運行。

nohup命令

nohup命令的語法形式是nohup COMMAND [ARGS]。nohup命令僅接受兩個選項--help--version,除此之外沒有任何其它沒有任何選項。

nohup python3 -m http.server命令將會在前臺啟動Python的HTTP服務(wù)器,并將HTTP服務(wù)器進程的標準輸出重定向到nohup.out文件。

nohup.out文件創(chuàng)建在當前工作目錄中。如果運行nohup命令的用戶沒有當前工作目錄的讀寫權(quán)限,nohup.out文件寫到用戶的家目錄中。

nohup python3 -m http.server
nohup: ignoring input and appending output to 'nohup.out'

nohup 命令后臺運行

nohup在前臺使用不是很有用,因為在命令完成之前,您將無法在當前TTY交互。要使nohup啟動的進程在后臺運行,請在命令末尾添加&符號。

nohup python3 -m http.server &命令將在后臺運行Python的HTTP服務(wù)器,并在終端上打印作業(yè)ID和進程ID。

當nohup作業(yè)進入后臺運行后,如果你想將nohup的作業(yè)放在前臺運行,您可以運行fg命令并指定作業(yè)ID,讓作業(yè)在前臺運行。

如果由于某種原因需要終止進程,請使用kill命令后跟進程ID,例如命令kill -9 68823終止nohup命令啟動的進程68823。

nohup python3 -m http.server &
 kill -9 68823
[1] 68823
nohup: ignoring input and appending output to 'nohup.out

標準錯誤與標準輸出重定向

默認情況下,nohup會將標準輸出和標準錯誤重定向到nohup.out文件。如果要將命令標準輸出和標準錯誤重定向到其他文件,可以使用shell的重定向符號>。

例如命令nohup python3 -m http.server > log 2>&1 &將Python的HTTP服務(wù)器進程標準輸出和標準錯誤重定向到文件http.out并在后臺運行。

如果你需要分別重定向標準錯誤和標準輸出到不同文件,可以運行命令nohup python3 -m http.server > access.log 2> error.log &。

命令將會把Python的HTTP服務(wù)器進程標準輸出寫入文件access.log,標準錯誤寫入文件error.log。

nohup python3 -m http.server > log 2>&1 &
nohup python3 -m http.server > access.log 2> error.log &
[1] 71816

如果你想知道命令access.log 2> error.log> log 2>&1有什么不同或者2>&1是什么可以閱讀我們的教程標準輸入/標準輸出/標準錯誤詳解。

重定向標準輸出和標準錯誤/dev/null

/dev/null稱空設(shè)備文件。在類Unix系統(tǒng)中是一個特殊的設(shè)備文件,它丟棄一切寫入其中的數(shù)據(jù),但報告寫入操作成功,讀取它則會立即得到一個EOF。

我們經(jīng)常在使用nohup命令啟動進程時,將進程的標準輸出和標準錯誤寫入空設(shè)備文件/dev/null,來抑制所有的消息輸出。

例如命令nohup python3 -m http.server > /dev/null 2>&1 &將會標準輸出和標準錯誤都重定向到空設(shè)備文件。

nohup python3 -m http.server > /dev/null 2>&1 &
[1] 71816

結(jié)論

至此,您應(yīng)該很好地理解如何使用nohup命令在后臺運行進程,以阻止在退出終端時終止進程。了解如何重定向標準錯誤和標準輸出。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    737

    瀏覽量

    22878
  • SSH
    SSH
    +關(guān)注

    關(guān)注

    0

    文章

    196

    瀏覽量

    16947
  • 進程
    +關(guān)注

    關(guān)注

    0

    文章

    207

    瀏覽量

    14280
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何在Linux命令行中終止進程

    如果進程在前臺運行,你可以使用 Ctrl+C 終端快捷方式。但是,如果進程不可見(在后臺運行),你可以使用專用
    發(fā)表于 09-20 11:07 ?1377次閱讀

    Linux命令:screen

    可以保持在后臺持續(xù)運行,不會因為ssh client斷開而結(jié)束,所以screen也常用來在后臺掛服務(wù)端程序(與nohup類似)。
    發(fā)表于 12-05 11:11 ?7136次閱讀

    后臺運行vi

    運行時隱藏在后臺運行
    發(fā)表于 06-09 14:32

    nohup命令后臺運行程序的用途和語法

    nohup命令后臺運行程序
    發(fā)表于 04-19 10:34

    遠程執(zhí)行后臺程序問題

    大佬們,我linux ssh遠程后臺執(zhí)行一個jar 退出終端程序就掉了,使用的命令nohup java路徑 -jar jar程序 &退出終端后仍然程序掛掉。使用nohup java路
    發(fā)表于 11-11 15:59

    前臺運行后臺運行二者有何區(qū)別

    開發(fā)環(huán)境:DeepIn15.11 開發(fā)語言:C語言 測試軟件:Final Shell3.0.10 目錄分清你的程序是前臺運行還是后臺運行,二者有何區(qū)別 前臺運行
    發(fā)表于 11-04 08:18

    HarmonyOS判斷服務(wù)是否在后臺運行的方法

    是否在后臺運行,代碼如下package com.newdemo.myapplication.slice;import com.newdemo.myapplication.MyApplication
    發(fā)表于 06-17 09:46

    Linux和UNIX可以用什么命令查看運行進程的相關(guān)信息

      你可以使用ps命令。它能顯示當前運行進程的相關(guān)信息,包括進程的PID。Linux和UNIX都支持ps命令,顯示所有
    發(fā)表于 01-20 09:42 ?6608次閱讀

    你了解過Linux后臺服務(wù)進程的開發(fā)過程?

    守護進程(Daemon)是運行在后臺的一種特殊進程。它獨立于控制終端并且周期性地執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。守護進程是一種很有用的進程
    發(fā)表于 05-13 09:21 ?1983次閱讀

    Linux 后臺運行程序

    任務(wù)可以對應(yīng)于一個或者多個進程號。&如果需要在后臺運行一個進程,可以在運行命令后邊加上?&。這
    發(fā)表于 04-02 14:41 ?968次閱讀

    Linux實現(xiàn)前后臺切換的命令

    如果后臺中有多個命令,可以用 fg %jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺正在執(zhí)行的
    的頭像 發(fā)表于 10-03 13:14 ?2056次閱讀

    Linux操作系統(tǒng)后臺:&與nohup的執(zhí)行命令用法

    大家可能有這樣的體驗:某個程序運行的時候,會產(chǎn)生大量的log,但實際上我們只想讓它跑一下而已,log暫時不需要或者后面才有需要。所以在這樣的情況下,我們希望程序能夠在后臺進行,也就是說,在終端上我們看不到它所打出的log。為了實現(xiàn)這個需求,我們介紹以下幾種方法。
    的頭像 發(fā)表于 10-08 11:46 ?1625次閱讀
    Linux操作系統(tǒng)<b class='flag-5'>后臺</b>:&與<b class='flag-5'>nohup</b>的執(zhí)行<b class='flag-5'>命令</b>用法

    Linux中的kill 和 killall 命令介紹

    如果進程在前臺運行,你可以使用 Ctrl+C 終端快捷方式。但是,如果進程不可見(在后臺運行),你可以使用專用
    的頭像 發(fā)表于 10-09 10:27 ?3591次閱讀

    Linux之screen命令

    可以保持在后臺持續(xù)運行,不會因為ssh client斷開而結(jié)束,所以screen也常用來在后臺掛服務(wù)端程序(與nohup類似)。
    的頭像 發(fā)表于 05-05 14:29 ?1235次閱讀

    Linux后臺進程管理詳解

    當我們在終端或控制臺工作時,可能不希望由于運行一個作業(yè)而占住了屏幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對于密集訪問磁盤的進程,我們更希望它能夠在每天的非負荷高峰時間段運行(例如凌晨)。為了使這些
    的頭像 發(fā)表于 04-25 11:04 ?415次閱讀
    Linux<b class='flag-5'>后臺</b><b class='flag-5'>進程</b>管理詳解