命令後面加&符號
python /data/python/server.py >python.log &
說明: 1、 > 表示把標準輸出(STDOUT)重定向到 那個文件,這裏重定向到了python.log
2、 & 表示在後臺執行腳本,這樣可以到達目的,但是,我們退出shell窗口的時候,必須用exit命令來退出,
否則,退出之後,該進程也會隨着shell的消失而消失(退出、關閉)
使用nohup
nohup python /data/python/server.py > python.log3 2>&1 &
說明:
1、 1是標準輸出(STDOUT)的文件描述符,2是標準錯誤(STDERR)的文件描述符 1> python.log 簡化爲 > python.log,表示把標準輸出重定向到python.log這個文件
2、2>&1 表示把標準錯誤重定向到標準輸出,這裏&1表示標準輸出
爲什麼需要將標準錯誤重定向到標準輸出的原因,是因爲標準錯誤沒有緩衝區,而STDOUT有。
這就會導致 commond > python.log 2> python.log 文件python.log被兩次打開,而STDOUT和 STDERR將會競爭覆蓋,這肯定不是我門想要的
3、好了,我們現在可以直接關閉shell窗口,而不用再輸入exit這個命令來退出shell了
在python運行中卻查看不到輸出
因爲:
python的輸出有緩衝,導致python.log3並不能夠馬上看到輸出。
使用-u參數,使得python不啓用緩衝。
所以改正命令,就可以正常使用了
nohup python -u test.py > out.log 2>&1 &