os.system无法使用init.d脚本

时间:2016-09-19 16:01:08

标签: python-2.7 os.system

我是python的新手,因此如果我在这里做一些愚蠢的话,请原谅我。我试图从我的python代码中获取一个shell脚本,该代码在实例启动时执行(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目录时,代码可以正常工作。

1 个答案:

答案 0 :(得分: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文件,然后以root身份登录并创建一个chron选项卡。 做

crontab script.txt @reboot