【发布时间】:2014-05-25 23:47:21
【问题描述】:
我通过 Blue Host 有一个远程服务器,旨在运行基于 Twisted for Python 的服务器。我对它的唯一访问是通过 SSH,所以为了在我注销后保持 Python 运行,我尝试使用 nohup python server.py & 和 screen -dm python server.py,得到相同的结果。在我退出 SSH 之前一切正常——即使 Python 按预期在后台运行,一旦我退出,我的客户端就无法再与服务器通信。奇怪的是,如果我通过 SSH 重新登录并使用 ps aux 检查正在运行的进程,我会看到 Python 正在运行,并且我的客户端可以再次与服务器成功通信。即使我在重新登录后根本不输入任何内容,一切都会按预期工作。但是,当然,一旦我退出,就好像服务器消失了一样。
我已经联系了托管服务的支持人员,以防这对他们来说有些奇怪,但希望这可以在我这边解决。
编辑:看起来 Blue Host 不希望我在不购买 VPS 升级的情况下做服务器相关的事情,所以看起来这是个大问题。
编辑 2: 好的,如果有人最终遇到类似的问题,这就是主要问题所在。我原来的描述有误;我能够连接到服务器,但由于 MySQL 错误,我立即被踢了。我想尝试在没有活动连接的情况下连接到localhost 数据库会导致问题,因此我改为更改 MySQL 连接命令以连接到我的站点的 IP 地址,即使它与服务器的 IP 相同。就我的主要问题而言,这似乎起到了作用。
【问题讨论】:
-
您的客户端通常如何与服务器通信?失败时以何种方式失败?您会收到什么样的错误消息?
-
客户端和服务器通过套接字进行通信。当它失败时,客户端根本没有收到来自服务器的响应,这最终成为我收到的唯一错误消息 - 无法访问服务器。