在 Wheezy 中用 Sysvinit 替换 Upstart 会导致错误

在 Wheezy 中用 Sysvinit 替换 Upstart 会导致错误

我有一个安装了 upstart 的 Debian Wheezy 服务器。

我删除了upstart并用sysvinit替换它,这导致了以下错误:

apt-get install --reinstall sysvinit
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 2 not upgraded.
Need to get 0 B/133 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 102927 files and directories currently installed.)
Preparing to replace sysvinit 2.88dsf-41+deb7u1 (using .../sysvinit_2.88dsf-41+deb7u1_amd64.deb) ...
Unpacking replacement sysvinit ...
Processing triggers for man-db ...
Setting up sysvinit (2.88dsf-41+deb7u1) ...
sysvinit: restarting...init: timeout opening/writing control channel /run/initctl
.init: timeout opening/writing control channel /run/initctl
.init: timeout opening/writing control channel /run/initctl
.init: timeout opening/writing control channel /run/initctl
.init: timeout opening/writing control channel /run/initctl
.init: timeout opening/writing control channel /run/initctl
.init: timeout opening/writing control channel /run/initctl
.init: timeout opening/writing control channel /run/initctl
 failed.

我担心如果我重新启动服务器将不再启动...到底是什么问题?

答案1

切换init系统的正确方法是:

  1. 安装 init 系统的非 init 部分(基本上除了 /sbin/{init,runlevel,poweroff,reboot,shutdown} 到 init 系统实现这些的链接之外的所有内容)。这意味着sysvinit-coresystemd最近的 Debian/Ubuntu 上的软件包。

  2. 将 init= 参数添加到 GRUB_CMDLINE,然后更新 GRUB。

  3. 重新启动,然后安装链接包(sysvinitsystemd-sysv)。

这只适用于 sysvinit 和 systemd,Upstart 不能使用此方法。它也仅适用于在 Debian Jessie 或更新版本上切换到 sysvinit,因为 sysvinit 软件包最近才进行常规软件包和核心软件包的拆分。

正如前面提到的,另一种选择是第一次硬重启,然后应该没问题(另外,您应该首先停止系统日志、MTA、Web 服务器、用户会话等)。

答案2

所以...原来init只能在开机时启动,而不能手动启动,这就是显示错误消息的原因。

另外,删除 Upstart 并安装 Sysvinit 后无法重新启动(请参阅下面的错误消息),因此我必须重新启动服务器以强制重新启动。

The system is going down for reboot NOW!
shutdown: timeout opening/writing control channel /run/initctl
init: timeout opening/writing control channel /run/initctl

答案3

这可能不完全是问题的答案,但我想可能会有所帮助:

我也遇到过同样的情况,当我这样做的时候就发生了apt-get dist-upgrade。因此,当尝试关闭/重新启动时,我收到了上述错误。在历史日志中/var/log/apt/history.log有最后操作的列表

Install: sysvinit:i386 (2.88dsf-41+deb7u1, automatic)
Remove: upstart:i386 (1.6.1-1)

所以,我刚刚做了,删除和安装apt-get install upstart时发出警告,安装后一切都很好。sysvinitupstart

警告 当尝试安装 upstart 时,这是一个警告,比如“你会做一些有害的事情”。所以,虽然它对我有用,但我不知道它会带来什么可能的后果。请自行承担风险。

相关内容