【发布时间】:2012-01-05 23:38:07
【问题描述】:
我试图从 Python 脚本中获取 Linux 框中的主机名。它是一个 Debian GNU/Linux Amazon EC2 实例。我在/etc/hostname 中设置了正确的名称。推荐的解决方案socket.gethostname() 不起作用:它显示 ip- 加上 IP 元组。
我在 StackOverflow 上进行了搜索,但没有任何结果,例如here。 socket.getfqdn() 更糟:它产生ip-[IP tuple].eu-west-1.compute.internal。
是我做错了什么,还是没有干净的解决方案来获取/etc/hostname 中的主机名?当然,后备解决方案是读取文件etc/hostname 本身,但本质上依赖于平台的东西在某种程度上太不正常了。谢谢!
【问题讨论】:
-
执行 uname -n 时是否看到所需的主机名?如果没有尝试执行 /etc/init.d/hostname.sh
-
太棒了!就是这样。现在
socket.gethostname()返回正确的主机名。所以问题只是机器没有重新启动并且没有采用新的主机名。如果你想用这个信息回答这个问题,我会投赞成票。