こんにちは、アプリケーション構成ファイルを変更する Python スクリプトがあります。これを適用するには、アプリケーションを再起動する必要があります。そのために、init.d ファイルを呼び出します。ただし、このアクションを実行するときは root である必要があります。そうしないと、アプリケーションは彼女をポートにバインドできません。また、ルートの権限ですべての Python スクリプトを実行したくありません。root 権限で再起動を実行してから削除するにはどうすればよいですか。
最初にユーザー権限を次のように設定しました。
if __name__ == "__main__":
uid = pwd.getpwnam('ubuntu')[2]
os.setuid(uid)
app.run(host='0.0.0.0', port=5001, debug=True)
スクリプトの最後で、次を実行する必要があります。
commands.getoutput('/etc/init.d/webapplication restart')
webapplication はポート 80 でバインドします。
この構成でスクリプトを実行すると、webapplication が起動できず、"cannot bind socket on the 80" というメッセージが返されます。
何か案が?pythonスクリプトの下でDebianサーバー上でroot権限で外部コマンドを1つだけ実行するクリーンなソリューションを手に入れるには?
事前に感謝します。
PS: メイン関数と同じ方法を使用しようとしましたが、ユーザー「ubuntu」を「root」に置き換えましたが、うまくいきません。