国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Python > 正文

python腳本后臺執行方式

2024-09-09 19:03:22
字體:
來源:轉載
供稿:網友

在Linux中,可以使用nohup將腳本放置后臺運行,如下:

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

1

但直接使用上面代碼,無法在程序運行過程中查看Python中的print "computing" 輸出結果,比如在每次循環中使用print語句等。原因是python的輸出有緩沖,導致nohup.out不能夠馬上看到輸出。

解決方法:

使用-u參數,使得python不啟用緩沖。

修改命令如下:

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

我們經常會碰到這樣的問題,用 telnet/ssh 登錄了遠程的 Linux 服務器,運行了一些耗時較長的任務, 結果卻由于網絡的不穩定導致任務中途失敗。如何讓命令提交后不受本地關閉終端窗口/網絡斷開連接的干擾呢?下面舉了一些例子, 您可以針對不同的場景選擇不同的方式來處理這個問題。

nohup/setsid/&

場景:

如果只是臨時有一個命令需要長時間運行,什么方法能最簡便的保證它在后臺穩定運行呢?

hangup 名稱的來由

在 Unix 的早期版本中,每個終端都會通過 modem 和系統通訊。當用戶 logout 時,modem 就會掛斷(hang up)電話。 同理,當 modem 斷開連接時,就會給終端發送 hangup 信號來通知其關閉所有子進程。

解決方法:

我們知道,當用戶注銷(logout)或者網絡斷開時,終端會收到 HUP(hangup)信號從而關閉其所有子進程。因此,我們的解決辦法就有兩種途徑:要么讓進程忽略 HUP 信號,要么讓進程運行在新的會話里從而成為不屬于此終端的子進程。

1. nohup

nohup 無疑是我們首先想到的辦法。顧名思義,nohup 的用途就是讓提交的命令忽略 hangup 信號。讓我們先來看一下 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 即可,標準輸出和標準錯誤缺省會被重定向到 nohup.out 文件中。一般我們可在結尾加上"&"來將命令同時放入后臺運行,也可用">filename 2>&1"來更改缺省的重定向文件名。

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 無疑能通過忽略 HUP 信號來使我們的進程避免中途被中斷,但如果我們換個角度思考,如果我們的進程不屬于接受 HUP 信號的終端的子進程,那么自然也就不會受到 HUP 信號的影響了。setsid 就能幫助我們做到這一點。讓我們先來看一下 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.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 琼结县| 革吉县| 大庆市| 辽源市| 寿宁县| 新邵县| 巴楚县| 泉州市| 含山县| 和硕县| 治多县| 乐安县| 会宁县| 枝江市| 六盘水市| 中山市| 潮安县| 肇源县| 民勤县| 崇阳县| 宿松县| 宿州市| 东光县| 曲靖市| 洪江市| 南川市| 通化县| 凤台县| 阆中市| 海原县| 海盐县| 曲周县| 星子县| 灵川县| 蒙山县| 石楼县| 北流市| 双桥区| 理塘县| 岳池县| 炎陵县|