<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                nohup 命令運行由 Command參數和任何相關的 Arg參數指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷后使用 nohup 命令運行后臺中的程序。要運行后臺中的 nohup 命令,添加 & ( 表示“and”的符號)到命令的尾部。 nohup 是 no hang up 的縮寫,就是不掛斷的意思。 nohup命令:如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那么可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之后繼續運行相應的進程。 在缺省情況下該作業的所有輸出都被重定向到一個名為nohup.out的文件中。 ``` 案例 nohup 命令 > file.log 2>&1 & ``` 在上面的例子中: ** 0 – stdin (standard input) 標準輸入 1 – stdout (standard output) 標準輸出 2 – stderr (standard error) 標準錯誤輸出 ** 2>&1是將標準錯誤(2)重定向到標準輸出(&1),標準輸出(&1)再被重定向輸入到myout.file文件中。 ``` 0 9 \* \* \* /usr/bin/python3 /opt/getFile.py > /opt/file.log 2>&1 這是放在crontab中的定時任務,每天9:00啟動這個python的腳本,并把執行結果寫入日志文件file.log中 ``` ### nohup和&的區別 & : 指在后臺運行 nohup : 不掛斷的運行,注意并沒有后臺運行的功能,,就是指,用nohup運行命令可以使命令永久的執行下去,和用戶終端沒有關系,例如我們斷開SSH連接都不會影響他的運行,注意了nohup沒有后臺運行的意思;&才是后臺運行 &是指在后臺運行,但當用戶推出(掛起)的時候,命令自動也跟著退出 我們只需要把他們結合起來使用 **nohup 命令 &** 這樣就能使命令永久的在后臺執行 有一個需求,執行一個python腳本,并交給后臺執行,將輸出結果存儲到一個日志文件中,以便后續故障排除及查看 執行命令: ``` nohup python3 ../getFile.py > file.log 2>&1 & ``` 發現日志文件里為空,并沒有將結果存儲進去 ![](https://img.kancloud.cn/94/f4/94f497306660d5f5009917ad276a484f_674x42.png) 試了很多方法,都不管用,最后在網上看到一種方法,是由于python緩存的問題導致的 \-u 參數,可以使python不啟用緩 ![](https://img.kancloud.cn/ea/0d/ea0df50d8a67e9876aafa985c7fa2c5a_698x44.png) 最后的 & 表示在后臺運行 2 表示輸出錯誤信息到提示符窗口 1 表示輸出信息到提示符窗口,1前面的&要注意添加,否則還會創建一個名為 1 的文件 最后會把日志文件輸出到 file.log 文件 ![](https://img.kancloud.cn/a4/c9/a4c9fbe6ad40d23d527ba6a6df4bf3dd_347x244.png) 查看后臺python進程: ``` ps -aux | grep python3 或 jobs ``` ![](https://img.kancloud.cn/c3/64/c364624105447aae87003c4476c70a48_922x62.png) ![](https://img.kancloud.cn/74/f9/74f9e82fb62bd748627011ced443c9aa_759x44.png) 殺死后臺進程 kill -9 進程id 或 kill -9 %任務id 或 pkill -9 進程名 ![](https://img.kancloud.cn/42/b2/42b2e2d778ba472d3d42f88f6ed477da_357x26.png) ![](https://img.kancloud.cn/2c/67/2c67a4b69c8c584d4519c5cfb99564b1_313x28.png) ![](https://img.kancloud.cn/a3/f1/a3f1275b7f0450170e6b1e2221740857_375x23.png) ### 2>&1的問題 ``` command >out.file 2>&1 & ``` command >out.file是將command的輸出重定向到out.file文件,即輸出內容不打印到屏幕上,而是輸出到out.file文件中 2>&1 是將標準錯誤重定向到標準輸出,這里的標準輸出已經重定向到了out.file文件,即將標準出錯也輸出到out.file文件中 試想2>1代表什么,2與>結合代表錯誤重定向,而1則代表錯誤重定向到一個文件1,而不代表標準輸出; 換成2>&1,&與1結合就代表標準輸出了,就變成錯誤重定向到標準輸出. ``` 不輸出文件 nohup python3 getfile.py > /dev/null 2>&1 & 輸出文件 nohup python3 getfile.py > test.log 2>&1 & ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看