麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開發(fā) > Python > 正文

python腳本后臺(tái)執(zhí)行方式

2024-09-09 19:03:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在Linux中,可以使用nohup將腳本放置后臺(tái)運(yùn)行,如下:

nohup python myscript.py params1 > nohup.out 2>&1 & 

1

但直接使用上面代碼,無(wú)法在程序運(yùn)行過(guò)程中查看Python中的print "computing" 輸出結(jié)果,比如在每次循環(huán)中使用print語(yǔ)句等。原因是python的輸出有緩沖,導(dǎo)致nohup.out不能夠馬上看到輸出。

解決方法:

使用-u參數(shù),使得python不啟用緩沖。

修改命令如下:

nohup python -u myscript.py params1 > nohup.out 2>&1 & 
from https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

我們經(jīng)常會(huì)碰到這樣的問(wèn)題,用 telnet/ssh 登錄了遠(yuǎn)程的 Linux 服務(wù)器,運(yùn)行了一些耗時(shí)較長(zhǎng)的任務(wù), 結(jié)果卻由于網(wǎng)絡(luò)的不穩(wěn)定導(dǎo)致任務(wù)中途失敗。如何讓命令提交后不受本地關(guān)閉終端窗口/網(wǎng)絡(luò)斷開連接的干擾呢?下面舉了一些例子, 您可以針對(duì)不同的場(chǎng)景選擇不同的方式來(lái)處理這個(gè)問(wèn)題。

nohup/setsid/&

場(chǎng)景:

如果只是臨時(shí)有一個(gè)命令需要長(zhǎng)時(shí)間運(yùn)行,什么方法能最簡(jiǎn)便的保證它在后臺(tái)穩(wěn)定運(yùn)行呢?

hangup 名稱的來(lái)由

在 Unix 的早期版本中,每個(gè)終端都會(huì)通過(guò) modem 和系統(tǒng)通訊。當(dāng)用戶 logout 時(shí),modem 就會(huì)掛斷(hang up)電話。 同理,當(dāng) modem 斷開連接時(shí),就會(huì)給終端發(fā)送 hangup 信號(hào)來(lái)通知其關(guān)閉所有子進(jìn)程。

解決方法:

我們知道,當(dāng)用戶注銷(logout)或者網(wǎng)絡(luò)斷開時(shí),終端會(huì)收到 HUP(hangup)信號(hào)從而關(guān)閉其所有子進(jìn)程。因此,我們的解決辦法就有兩種途徑:要么讓進(jìn)程忽略 HUP 信號(hào),要么讓進(jìn)程運(yùn)行在新的會(huì)話里從而成為不屬于此終端的子進(jìn)程。

1. nohup

nohup 無(wú)疑是我們首先想到的辦法。顧名思義,nohup 的用途就是讓提交的命令忽略 hangup 信號(hào)。讓我們先來(lái)看一下 nohup 的幫助信息:

NOHUP(1)   User Commands   NOHUP(1) NAME nohup - run a command immune to hangups, with output to a non-tty SYNOPSIS nohup COMMAND [ARG]... nohup OPTION DESCRIPTION Run COMMAND, ignoring hangup signals.  --help display this help and exit  --version  output version information and exit

可見,nohup 的使用是十分方便的,只需在要處理的命令前加上 nohup 即可,標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤缺省會(huì)被重定向到 nohup.out 文件中。一般我們可在結(jié)尾加上"&"來(lái)將命令同時(shí)放入后臺(tái)運(yùn)行,也可用">filename 2>&1"來(lái)更改缺省的重定向文件名。

nohup 示例

[root@pvcent107 ~]# nohup ping www.ibm.com &[1] 3059nohup: appending output to `nohup.out'[root@pvcent107 ~]# ps -ef |grep 3059root 3059 984 0 21:06 pts/3 00:00:00 ping www.ibm.comroot 3067 984 0 21:06 pts/3 00:00:00 grep 3059[root@pvcent107 ~]#

2。setsid

nohup 無(wú)疑能通過(guò)忽略 HUP 信號(hào)來(lái)使我們的進(jìn)程避免中途被中斷,但如果我們換個(gè)角度思考,如果我們的進(jìn)程不屬于接受 HUP 信號(hào)的終端的子進(jìn)程,那么自然也就不會(huì)受到 HUP 信號(hào)的影響了。setsid 就能幫助我們做到這一點(diǎn)。讓我們先來(lái)看一下 setsid 的幫助信息:

SETSID(8)   Linux Programmer's Manual   SETSID(8) NAME setsid - run a program in a new session SYNOPSIS setsid program [ arg ... ] DESCRIPTION setsid runs a program in a new session.
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久久北条麻妃免费看 | 欧美视频国产 | 精品亚洲成a人在线观看 | 国产成人高清在线观看 | www.guochan| 中文字幕在线播放一区 | 免费视频xxxx | 精品国产一区二区三区天美传媒 | 国产资源在线免费观看 | 国产精品一区二区在线 | 亚洲午夜免费 | 蜜桃麻豆视频 | 一级黄色免费电影 | 国产黄网 | 91精品一区二区综合在线 | 国产亚洲精品久久午夜玫瑰园 | 亚洲国产成人久久一区www妖精 | 欧美成人一区二区三区电影 | 春光影院理论片 | 手机免费看一级片 | 日韩欧美电影一区二区三区 | 久久91久久久久麻豆精品 | 精品免费久久 | 黄视频网站免费在线观看 | 欧美一级高潮 | 久久久久久免费 | 草莓福利视频在线观看 | 91短视频在线播放 | 午夜爱爱福利 | 羞羞视频免费网站含羞草 | 国产中文一区 | 亚洲午夜不卡 | 久久久久免费精品 | 亚洲国产高清视频 | 在线 日本 制服 中文 欧美 | 精品国产一区二区三区四区在线 | 91短视频在线视频 | 在线看免电影网站 | 国产亚洲精品综合一区91555 | 毛片在线视频在线播放 | 久久久久久久久免费 |