我的 Ubuntu 服务器安装有问题 :/ 服务器运行多个服务,例如 postfix、dovecot(作为邮件服务器)、apache2、mysqld、elasticsearch。通常在启动时,这些服务应该自动启动,但不幸的是,从 12.04 升级到 Ubuntu 14.04.1 LTS 后,它们不再启动。
我对 ubuntu 启动和服务了解不多,所以我不知道该怎么做。我检查了启动后的运行级别是否正确(是的,N 2),但我所做的就这些了。
我发现,似乎只有 upstart 服务(在 /etc/init/ 中有配置)会自动启动(例如 mysqld、dovecot)。使用 sysvinit(/etc/init.d)的服务无法启动(例如 postfix、apache2)。
我可以通过 ssh(upstart 服务)连接手动启动服务而不会出现任何问题,所以我不认为这是服务本身的问题。
希望可以有人帮帮我 :(
提前致谢。
编辑:
日志文件:
dmesg:http://pastebin.com/uwrwhVmT
系统日志:http://pastebin.com/8fczRUE1
boot.log:空
字距:pastebin.com/TA9GiG95
编辑2:
我阅读并进一步研究了它,似乎所有可以通过 upstart 启动的服务都已启动,而使用 sysvinit 的服务则无法再启动。
rc-sysvinit.conf 脚本:pastebin.com/77sMbBy0
编辑3:
为了测试,我也将 apache2 移到了 rcS,它会自动启动。我这样做是因为我在 中看到了以下行rc-sysinit.conf
:
[ -n "${FROM_SINGLE_USER_MODE}" ] || /etc/init.d/rcS
我对照 14.04 源代码检查了整个文件,但没有发现任何差异。这令人沮丧,我无法找到解决方案将所有必需的服务移至 rcS?!:)
编辑4:
现在我从#ubuntu-server irc 中的 rbasak 获得了提示,并按照启动的步骤进行操作。
/etc/init/rc-sysinit.conf
成功调用(使用记录器跟踪)/etc/init.d/rcS
并执行/etc/init.d/rc S
(我使用记录器跟踪的运行级别S
)。此后,/etc/init/rc-sysinit.conf
执行telinit "${DEFAULT_RUNLEVEL}"
(DEFAULT_RUNLEVEL 为 2,使用记录器跟踪),但/etc/init.d/rc
此后未执行(它应该运行,并且记录器语句应该记录运行级别2
)。有什么建议吗?
答案1
经过多次尝试修复问题或找出问题所在后,我现在已经使用实际的 Ubuntu 14.04 映像重新安装,现在一切正常。不幸的是,我无法说出问题是什么 :(