<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Linux nohup命令詳解,終端關(guān)閉程序依然可以在執(zhí)行!

          共 1751字,需瀏覽 4分鐘

           ·

          2020-06-18 23:22

          e9fedb2f582175b580d4bc825efdcc2a.webp626e9255adec3e3759c7f48ae4abbd5a.webp


          ??當(dāng)當(dāng)年中慶,又有羊毛可以薅了?。?!?


          點(diǎn)擊「閱讀原文」查看良許原創(chuàng)精品視頻。


          大家好,我是良許。

          在工作中,我們很經(jīng)常跑一個(gè)很重要的程序,有時(shí)候這個(gè)程序需要跑好幾個(gè)小時(shí),甚至需要幾天,這個(gè)時(shí)候如果我們退出終端,或者網(wǎng)絡(luò)不好連接中斷,那么程序就會(huì)被中止。而這個(gè)情況肯定不是我們想看到的,我們希望即使終端關(guān)閉,程序依然可以在跑。

          這時(shí)我們就可以使用?nohup?這個(gè)命令。

          nohup?命令是英語(yǔ)詞組?no hangup?的縮寫,意思是不掛斷,也就是指程序不退出。這個(gè)命令會(huì)使程序忽略?HUP?信號(hào),保證程序能夠正常進(jìn)行。HUP?信號(hào)有些人可能比較陌生,它是在終端被中止的時(shí)候向它所關(guān)聯(lián)的進(jìn)程所發(fā)出的信號(hào),進(jìn)程收到這個(gè)信號(hào)后就會(huì)中止運(yùn)行。所以如果你不希望進(jìn)程被這個(gè)信號(hào)干掉的話,就可以忽略這個(gè)信號(hào)。而?nohup?命令做的就是這個(gè)事情。

          本文我們將詳細(xì)介紹?nohup?命令的具體用法。

          nohup命令基本語(yǔ)法

          nohup 命令的基本語(yǔ)法如下:

          $ nohup command arguments

          或者:

          $ nohup options

          如果你想要得到更多關(guān)于 nohup 的用法介紹,可以查看它的幫助頁(yè)面:

          $ nohup --help

          如果你需要查看它的版本號(hào),可以使用?--version?選項(xiàng)。

          $ nohup --version

          使用nohup命令啟動(dòng)一個(gè)程序

          如果你需要運(yùn)行一個(gè)程序,即使對(duì)應(yīng)的 Shell 被退出后依然保持運(yùn)行,可以這樣使用 nohup 運(yùn)行這個(gè)程序:

          $ nohup command

          當(dāng)這個(gè)程序進(jìn)行起來(lái)之后,這個(gè)程序?qū)?yīng)的 log 輸出及其錯(cuò)誤日志都將被記錄在?nohup.out?文件里,這個(gè)文件一般位于家目錄或者當(dāng)前目錄。

          重定向程序的輸出

          如果我不想把程序的輸出保存在家目錄或者當(dāng)前目錄,我想保存在我指定的路徑,并且自定義文件名,要怎么操作?這時(shí)我們就可以使用重定向操作?>?。

          比如,我現(xiàn)在有個(gè)腳本?myScript.sh?我想把它的輸出保存在家目錄下的?output?目錄下,文件名為?myOutput.txt?,可以這樣運(yùn)行:

          $ nohup ./myScript.sh > ~/output/myOutput.txt

          使用nohup命令后臺(tái)啟動(dòng)一個(gè)程序

          如果想讓程序在后臺(tái)運(yùn)行,可以加上?&?符號(hào)。但這樣運(yùn)行之后,程序就無(wú)影無(wú)蹤了。想要讓程序重新回到終端,可以使用?fg?命令。

          f2ffe03f46c08affe79bf63a4dc56023.webp

          這個(gè)命令的輸出 log 將保存在 nohup.out 文件里,你可以使用 cat 或其它命令查看。第二行里 8699 這個(gè)數(shù)字代表這個(gè)命令對(duì)應(yīng)的進(jìn)程號(hào),也就是 pid 。我們可以使用?ps?命令來(lái)找到這個(gè)進(jìn)程。

          使用nohup同時(shí)運(yùn)行多個(gè)程序

          如果你需要同時(shí)跑多個(gè)程序,沒(méi)必要一個(gè)個(gè)運(yùn)行,直接使用?&&?符號(hào)即可。比如,你想同時(shí)跑 mkdir ,ping,ls 三個(gè)命令,可以這樣運(yùn)行:

          $ nohup bash -c 'mkdir files &&
          ping -c 1 baidu.com && ls'
          > output.txt

          ebce083ec750c73487f5aff12362baa1.webp

          終止跑在后臺(tái)的進(jìn)程

          上面有提到,nohup?命令結(jié)合?&?符號(hào)可以使進(jìn)程在后臺(tái)運(yùn)行,即使關(guān)閉了終端依然不受影響。這時(shí),如果想要終止這個(gè)進(jìn)程,要怎么操作呢?

          最簡(jiǎn)單的當(dāng)屬?kill?命令,相信大家用過(guò)很多次了。

          $kill -9 PID

          那要如何找到進(jìn)程對(duì)應(yīng)的 pid 呢?我們可以使用?ps?命令。

          $ ps aux | grep myScript.sh

          1076d49107bebd75d9afb470880034ae.webp

          或者你使用?pgrep?命令也行。

          0a248b5754a86561aa6635cbbe5cee74.webp

          接下來(lái),再使用?kill?命令就可以終止該進(jìn)程了。

          $kill -9 14942


          良許個(gè)人微信


          添加良許個(gè)人微信即送3套程序員必讀資料


          → 精選技術(shù)資料共享

          → 高手如云交流社群





          本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)里回復(fù)「m」獲??!

          推薦閱讀:

          如何系統(tǒng)地學(xué)習(xí) C++ 語(yǔ)言?

          厲害了!除了find命令,還有這么多文件查找命令,高手必備!

          Leetcode驚現(xiàn)馬化騰每天刷題?為啥大佬都這么努力!


          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲?。?!


          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  自拍偷拍精品 | 亚洲成人资源网 | 青青久久伊人春色 | 免费观看一区二区三区 | 九九韩剧网最新电视剧免费观看 |