web-dev-qa-db-ja.com

/etc/rc.local内のpythonスクリプトが機能しない

Amazon AWSAMIで/etc/rc.localを変更しました

#!/bin/sh
touch /var/lock/subsys/local
# setup hostname properly
/usr/bin/python /root/automation/initSystem.py

したがって、最後の行はPython構成(環境変数、ホスト名、ネットワーク設定など)を実行し、次に/etc/init.d/networkrestartを実行するスクリプトを呼び出します

rc.localを手動で実行した場合/etc/rc.localすべてが問題ありません

システムの自動起動時に機能しません。したがって、タッチコマンド(2行目-動作しました)が、pythonスクリプトは実行されません、少なくともその実行の結果(ホスト名の設定とネットワークインターフェイスの再起動はまったく動作しないようです)

何か案は?

3
DmitrySemenov

ミステリースクリプトをデバッグすることはできません。 pythonスクリプトの実行は空の環境で機能しますか?試してみてください:

env -i /usr/bin/python /root/automation/initSystem.py

スクリプトを変更して、コマンドの出力をスクリプトにキャプチャします。

/usr/bin/python /root/automation/initSystem.py > /root/init.stdout 2> /root/init.stderr

おそらく失敗した理由についてのヒントが含まれています。

2
MikeyB