日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

nohup命令

發(fā)布時(shí)間:2023/12/19 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 nohup命令 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

經(jīng)常會(huì)運(yùn)行類似這樣的命令nohup python main-script.py arg1 arg2 > log2.txt 2>&1 &

nohup 命令運(yùn)行由 Command參數(shù)和任何相關(guān)的 Arg參數(shù)指定的命令,忽略所有掛斷(SIGHUP)信號(hào)。

也就是說(shuō)當(dāng)你按下Ctrl+D從Linux注銷用戶以后,你的程序還是可以運(yùn)行而不是隨著你的離開(kāi)而結(jié)束。

如果不指定輸出文件的位置,類似這樣:nohup python main-script.py arg1 arg2 & 那么會(huì)在當(dāng)前

目錄下有一個(gè)nohup.out文件記錄log, 那么> log2.txt 2>&1 & 是什么意思呢。 > log2.txt是將輸出重定向到 log2.txt文件

2>&1 則是將標(biāo)準(zhǔn)錯(cuò)誤(2)也定向到標(biāo)準(zhǔn)輸入(1)[標(biāo)準(zhǔn)輸入(0)就是從命令行輸入了]。

不過(guò)經(jīng)常會(huì)看到,一個(gè)程序運(yùn)行了很久,卻沒(méi)有多少log出來(lái),而是等到一定數(shù)量的內(nèi)容生產(chǎn)后,log文件中才有內(nèi)容。這是因?yàn)?/p>

I/O緩沖區(qū)的問(wèn)題。如果程序重定向到文件會(huì)在緩沖區(qū)滿了以后才寫(xiě)入磁盤文件,比如以下的代碼not_flush.py:

from time import sleep
# import sys
for i in range(100000):
  print i
  # sys.stdout.flush()
  sleep(1)

使用命令 pythonnot_flush.py > log & 很久log里也沒(méi)有內(nèi)容,但是加上注釋以后 每一次循環(huán)都會(huì)寫(xiě)入文件.

另外,對(duì)于Python2.X的print 和sys.stdout.write()好像還不一樣,如果希望盡快看到log,還是使用sys.stdout.write()+sys.stdout.flush()比較好.

比如:

from time import sleep
import sys
for i in range(100000):
  sys.stdout.write(str(i) + "
")
  sys.stdout.flush()
  sleep(2)

這樣每次循環(huán)log就有內(nèi)容了,不用擔(dān)心程序出錯(cuò)以后 繼續(xù)運(yùn)行了很久才會(huì)發(fā)現(xiàn)了,因?yàn)镻ython這種動(dòng)態(tài)語(yǔ)言一個(gè)變量名字寫(xiě)錯(cuò)了,到最后一個(gè)步驟你的程序還是掛了。

總結(jié)

以上是生活随笔為你收集整理的nohup命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。