我从 VPS 公司租用了 VPS,并在那里运行 Ubuntu 14.04 Web 服务器。最近它不得不被我的提供商暂停一段时间。暂停期(1-2 天)后,VPS 会启动,但无法获取任何运行级别。
root@vps:/# runlevel
unknown
反过来,这意味着没有 Upstart 服务在启动时启动,因为“有用的东西”需要runlevel [2345]
。
我可以使用 手动启动各个服务initctl
,除非它们具有启动时不会自动启动的依赖项。
我无法从日志中找到任何有用/可理解的内容。请询问您是否需要特定的日志条目,我可以尝试找到它们。
服务器正在运行 PHP7、Nginx、MySQL、Redis、Minecraft Server、Mumble Server。在暂停期间之前,服务器运行良好(并且在多次重新启动后幸存下来)。
这是我initctl list
重新启动后的情况:http://pastebin.com/fcfcnxBU。请询问具体细节,因为我不完全确定在哪里寻找它们(例如日志文件、调试工件、文件和目录等)。
编辑:通过修补取得了一些进展:
启动时文件系统和/或网络堆栈似乎未正确启动。当我执行以下操作时:
$ ifup --all
$ initctl emit static-network-up
$ initctl emit filesystem
... Ctrl-C to exit loop
$ initctl emit local-filesystems
然后我得到
$ runlevel
>N 2
而且我的服务器服务(至少大部分)运行正常。
我将检查是否有一个命令可以使引导初始化序列正常继续。
编辑2:
ifup --all
调出venet0:0
与 VPS 的公共静态 IP 绑定的一个。emit static-network-up
什么也没做。emit filesystem
+Ctrl-C
开始- 系统日志
- SSH
- 我的世界服务器
- 计划任务
- 西内特
- 安慰
- 终端2
- 新贵文件桥
- mysql
并停止
- 普利茅斯
- 普利茅斯新贵桥
emit local-filesystems
开始- avahi 守护进程
- 系统登录
- 安装目录
- 总线
- 联网
某种叫做的东西
network-interface-security (network-interface/lo) start/running
消失了。
答案1
您正在阅读的 init 已被替换为暴发户从 Edgy Eft 6.10 开始;而且,upstart 提供的程序之一是它自己的 init 实现。参考是这个文档14.04。
要更改默认运行级别,请在 /etc/init/rc-sysinit.conf 中使用您最喜欢的文本编辑器。
sudo vim /etc/init/rc-sysinit.conf
将此行更改为您想要的任何运行级别...
env DEFAULT_RUNLEVEL=2
然后,在每次启动时,upstart 将使用该运行级别。
并重新启动系统。
如果仍然无法启动,请检查所有应用程序是否已更新以及所有依赖项是否已正确安装,然后尝试在 upstart 中再次更新它们。