2016-09-19 3 views
0

私はPythonの初心者です。私がここで何か愚かなことをしているなら、私は許してください。私は、起動スクリプト(init.dスクリプトの一部)で実行されているPythonコードからシェルスクリプトの一部を取得しようとしています。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

スクリプトの上部にある引用符を除いて、必ず "import sys"を実行してください。 – thesonyman101

+0

あなたの返事をありがとう...はい私はそれを実行しています.....それは手動で実行するときに動作しますが、init.dモジュールによって実行されているときは動作しません。 –

答えて

0

Linuxを使用しているので、Pythonを使用するだけでなく、もっと簡単な解決策がbashを使用することもできます。

これをscript.txtというファイルまたはこれまでのファイルに入れます。

は、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 

を行います。 do

crontab script.txt @reboot 
+0

提案していただきありがとうございます。私は実際に他のタスクのリストを使用するためにPythonを使用しています。したがって、このアプローチを使いたいと思ったことを単純に保つためです。 –

関連する問題