2017-01-24 26 views
3

我有一個非常簡單的問題。 Python腳本開始執行以下操作:Python sys.stdout不能用於init.d腳本

import sys 
sys.stdout = open("server.out", 'w') 

如果我直接輸入此命令到終端

python start_server.py & 

它寫入server.out文件。 如果我進入service tdserver start,所有init.d腳本不會是這樣的:

python start_server.py & 

同樣的命令,沒有別的。然而,在這種情況下,stdout不會被寫入server.out

爲什麼?沒有進程對文件鎖,確認腳本停止與ps -aux

+1

請嘗試使用完整路徑作爲文件名,例如打開(「/ tmp/server.out」,'w')並檢查你是否在/ tmp中找到該文件 – Yaron

+0

它解決了我的問題。我想知道默認的exec目錄是什麼。請將其添加爲答案,以便我可以接受。 –

回答

2

正如意見中討論:

你在current directory寫入到server.out

init.dcurrent directory是/etc/init.d(如linusg所述)。

使用絕對路徑輸出文件(到可寫位置)將解決該問題。