那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-05 16:25 ? 次閱讀

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

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

如果你不想被某一程序被終止,可以使用nohup命令。它將忽略所有中斷信號,啟動的命令程序將繼續運行。

nohup命令

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

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

nohup.out文件創建在當前工作目錄中。如果運行nohup命令的用戶沒有當前工作目錄的讀寫權限,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服務器,并在終端上打印作業ID和進程ID。

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

如果由于某種原因需要終止進程,請使用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服務器進程標準輸出和標準錯誤重定向到文件http.out并在后臺運行。

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

命令將會把Python的HTTP服務器進程標準輸出寫入文件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稱空設備文件。在類Unix系統中是一個特殊的設備文件,它丟棄一切寫入其中的數據,但報告寫入操作成功,讀取它則會立即得到一個EOF。

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

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

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

結論

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 命令
    +關注

    關注

    5

    文章

    696

    瀏覽量

    22114
  • SSH
    SSH
    +關注

    關注

    0

    文章

    189

    瀏覽量

    16406
  • 進程
    +關注

    關注

    0

    文章

    204

    瀏覽量

    13997
收藏 人收藏

    評論

    相關推薦

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

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

    Linux命令:screen

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

    后臺運行vi

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

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

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

    遠程執行后臺程序問題

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

    前臺運行后臺運行二者有何區別

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

    HarmonyOS判斷服務是否在后臺運行的方法

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

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

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

    你了解過Linux后臺服務進程的開發過程?

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

    Linux 后臺運行程序

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

    Linux實現前后臺切換的命令

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

    Linux操作系統后臺:&與nohup的執行命令用法

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

    pidof命令:用于查找指定名稱進程進程ID

    1.命令簡介 pidof 命令用于查找指定名稱進程進程ID,是命令 killall5 的一個軟鏈接。 找出
    的頭像 發表于 02-02 14:16 ?3211次閱讀
    pidof<b class='flag-5'>命令</b>:用于查找指定名稱<b class='flag-5'>進程</b>的<b class='flag-5'>進程</b>ID

    Linux中的kill 和 killall 命令介紹

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

    Linux之screen命令

    可以保持在后臺持續運行,不會因為ssh client斷開而結束,所以screen也常用來在后臺掛服務端程序(與nohup類似)。
    的頭像 發表于 05-05 14:29 ?1042次閱讀
    百家乐官网最新庄闲投注法| 百家乐官网正网开户| 百家乐游戏台| 百家乐官网翻天粤语下载| 百家乐赌缆十三式| 圣淘沙百家乐官网娱乐城| 大发888娱乐城官方网站lm0| 永利高百家乐进不去| BB百家乐官网大转轮| 百家乐官网千术道具| 大发888 bet娱乐场下载| 百家乐书| 百家乐官网23珠路打法| 百家乐官网分析软件下| 百家乐2号机器投注技巧| 广州百家乐官网筹码| 澳门百家乐官网线上娱乐城| 合江县| 东乡族自治县| 狮威娱乐| 大发888娱乐场 17| 大发888娱乐城qq服务| 斗地主百家乐的玩法技巧和规则| 百家乐系统分析器| 网络百家乐官网赚| 名人百家乐官网的玩法技巧和规则 | 百家乐方法技巧| 2024一2043风水气位| 澳门百家乐官网博| 专业的百家乐官网玩家| 百家乐官网游戏技巧| 百家乐官网的赚钱原理| 临洮县| 柳江县| 百家乐官网使用技法| 大发真钱娱乐城| 刚察县| 百家乐官网的保单打法| 百家乐官网实战技术| 百家乐官网ho168平台| 什么事百家乐官网的路单|