[英]Why program in the background dies after logging out?
我有一個簡單的python程序,可以這樣寫到stderr:
import sys
import time
while 1:
time.sleep(10)
sys.stderr.write('.')
當我在后台運行此命令,然后從bash中注銷時,似乎第一次寫入stderr的操作就死了。
$ python err.py &
[1] 25546
$ ..logout
huponexit已關閉,注銷后我可以從另一個終端確認程序仍在運行一段時間。
我的問題是“為什么在寫完stderr之后它才退出?”
stderr
最初連接到終端。 注銷后,操作系統會撤消您對該終端的訪問權限(這是Unix 會話管理的一部分),嘗試對其進行寫操作會導致將SIGHUP
信號發送到該進程,並且該進程的默認操作是終止該進程。 。
如果將stderr
重定向到文件,則該文件應繼續運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.