2017-10-18 81 views
0

我正面臨一個奇怪的問題。我有一個Python腳本,其中包括以下行Python中的一個系統命令在與cron一起執行時不工作

subprocess.call("ifconfig ens3 inet6 add " + str(address) + "/64", shell=True) 

它在循環中爲OS分配一個IP。我面臨的問題是,如果手動運行IP,則會分配IP,但在重新啓動時使用cron運行IP時,不會分配IP。我知道腳本會在啓動時運行,因爲我將結果發送到日誌。但是當我檢查ip -6 addr時,如果腳本使用cron運行,則不會分配IP。但是如果我自己運行它們,它們會被分配。

+2

Cron有時沒有'$ PATH'變量,因此找不到'ifconfig'的位置。你有沒有嘗試用'/ sbin/ifconfig'替換它(或者'ifconfig'可能)? –

+0

我會嘗試 – Arya

+0

它的工作。你可以寫在答案中,我會接受它 – Arya

回答

0

克朗有時沒有$PATH變量集,因此找不到ifconfig的位置。用/sbin/ifconfig(或ifconfig可能)替換它。

+0

從技術上講,我相信'cron',以及系統上幾乎所有其他進程,除了'init'和其他一些早期啓動的東西,都會有一個'PATH'變量可用。當我看着'/ proc//environ'時,它肯定會在我的系統中執行。說「PATH」變量的內容通常不是用戶期望的內容更爲正確。 – twalberg