2016-09-19 34 views
0

我是新來的python,因此如果我在這裏做一些愚蠢的事情,請原諒我。我試圖從我的python代碼中正在執行的實例啓動(init.d腳本的一部分)中獲取一段shell腳本。os.system不能與init.d腳本一起工作

try: 
    os.system("sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-e103e928.efs.eu-west-1.amazonaws.com:/ /staticshopcontent") 
except: 
    sys.exit("Unable to mount EFS for staticshop") 

代碼的工作,當我手動運行該Python腳本,但沒有安裝在啓動時的EFS目錄。

+0

請確保您執行腳本頂部的引號「導入sys」。 – thesonyman101

+0

感謝您的回覆...是的,我正在這樣做.....它工作時,我手動運行它,但不是當它由init.d模塊運行時。 –

回答

0

既然你使用Linux,你可能甚至不使用python,更簡單的解決方案就是使用bash。

把它放在一個名爲script.txt的文件中,或者是什麼。

然後做

#!/bin/bash 
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-e103e928.efs.eu-west-1.amazonaws.com:/ /staticshopcontent 

保存,爲txt文件,然後以根用戶登錄並創建chron的標籤。 做

crontab script.txt @reboot 
+0

感謝您的建議。我實際上使用Python來使用其他任務的列表,因此爲了簡單起見,希望使用這種方法。 –