在两台不同的服务器上,我安装了 redis 和 postgresdb。两者都不会在启动时成功启动,但如果手动启动/重新启动它们就会启动。两者的错误相同(无法绑定到地址)。这是 postgres 日志的示例:
2021-05-27 21:12:39.703 UTC [682] LOG: starting PostgreSQL 12.6 (Ubuntu 12.6-0ubuntu0.20.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit
2021-05-27 21:12:39.704 UTC [682] LOG: listening on IPv4 address "127.0.0.1", port 5432
2021-05-27 21:12:39.707 UTC [682] LOG: could not bind IPv4 address "192.168.86.222": Cannot assign requested address
2021-05-27 21:12:39.707 UTC [682] HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
和redis:
653:M 27 May 2021 21:12:23.090 # Could not create server TCP listening socket 192.168.86.234:6379: bind: Cannot assign requested address
这些机器在不同的硬件上运行,但都运行相同版本的 ubuntu (20.04.2 LTS)。这些IP地址对于那些机器来说是静态的,所以没有其他东西在使用它们,而且我可以在启动后立即找到它们(当我重新启动服务时)让我相信这不是地址实际在其他地方使用的情况. 我不太确定问题的原因是什么。我最好的猜测是这些服务正在尝试在网络服务完全启动/配置之前启动,但我不确定如何验证或确认这一点。有什么想法或建议吗?
您可以尝试列出依赖项(以 ufw 为例):
或查看 Unit File 信息(再次用于 ufw):
如果您确实需要启动网络,您可以添加到单元文件中:
您还可以查看 Journal 以查看服务是否出现任何错误: