您好我有一个修改应用程序配置文件的 python 脚本。要应用它,我需要重新启动应用程序。为此,我调用了一个 init.d 文件。但是当我执行此操作时,我需要成为 root,否则应用程序无法将她绑定到端口上。此外,我不想以 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 将无法启动并返回消息“无法在 80 上绑定套接字”。
任何的想法?有一个干净的解决方案,在 python 脚本下在 Debian 服务器上只执行一个具有 root 权限的外部命令?
提前谢谢。
PS:我尝试使用与我的主要功能相同的方法,我已将用户“ubuntu”替换为“root”,但它不起作用。