Wheezy에서 Upstart를 Sysvinit로 바꾸면 오류가 발생합니다.

Wheezy에서 Upstart를 Sysvinit로 바꾸면 오류가 발생합니다.

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

초기화 시스템을 전환하는 올바른 방법은 다음과 같습니다.

  1. init 시스템의 init가 아닌 부분을 설치합니다(기본적으로 /sbin/{init,runlevel,poweroff,reboot,shutdown}을 제외한 모든 부분은 이를 구현하는 init 시스템에 연결됩니다). 이는 Debian/Ubuntu의 최신 패키지를 sysvinit-core의미 합니다.systemd

  2. GRUB_CMDLINE에 init= 매개변수를 추가하고 GRUB를 업데이트하세요.

  3. 재부팅하고 링크 패키지( sysvinit또는 systemd-sysv)를 설치합니다.

이는 sysvinit 및 systemd에서만 작동하며 Upstart에서는 이 방법을 사용할 수 없습니다. 또한 sysvinit 패키지는 최근에야 일반 패키지와 핵심 패키지로 분할되었으므로 Debian Jessie 이상에서 sysvinit로 전환하는 경우에만 적용됩니다.

앞에서 언급했듯이 또 다른 옵션은 처음에 하드 재부팅을 수행하는 것입니다. 그러면 문제가 없을 것입니다(또한 syslog, MTA, 웹 서버, 사용자 세션 등을 먼저 중지해야 합니다).

답변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를 설치하려고 할 때 "당신은 해로운 일을 할 것입니다"와 같은 경고입니다. 그래서 그것이 나에게는 효과가 있었지만 가능한 결과가 무엇인지는 몰랐습니다. 자기 책임하에 사용해 주십시오.

관련 정보