upstart/systemd 및 runit에서 이 오류가 발생하는 이유는 무엇입니까?

upstart/systemd 및 runit에서 이 오류가 발생하는 이유는 무엇입니까?

나는 sudo apt-get install git-allUbuntu 16.04에서 실행 중이며 결국 다음을 보게 됩니다.

Setting up runit (2.1.2-3ubuntu1) ...
start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
dpkg: error processing package runit (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of git-daemon-run:
 git-daemon-run depends on runit; however:
  Package runit is not configured yet.

dpkg: error processing package git-daemon-run (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                      Errors were encountered while processing:
 runit
 git-daemon-run
E: Sub-process /usr/bin/dpkg returned an error code (1)

시스템을 다시 시작한 후에도 이 오류가 발생합니다. 말 그대로 내 전체 시스템을 막히게 합니다. 난 달린다 killall update-notifier. 실행했지만 sudo apt-get install git-all동일한 오류 메시지가 나타납니다. 실행했지만 pgrep -a apt출력이 나오지 않습니다. 실행했지만 pgrep -a update출력이 나오지 않습니다. 이 사건에 대한 버그 신고여기.

  • 그럽에서 다음을 선택하세요.고급 옵션>Ubuntu(업스타트) Linux 커널 4.22. 그냥 터미널에서 똑같이 하세요체계같은 오류가 발생합니다.

runit에서 이 오류가 발생하는 이유는 무엇입니까?

답변1

게릿 펩xyr의 자체 runit과 Bernstein의 데비안용 daemontools 패키지를 유지 관리하는 그는 "init-system neutrality"(Debian systemd 이후 대중화됨) 개념을 실제로 구현한 몇 안 되는 개발자 중 한 명입니다. van Smoorenburg init, upstart 및 systemd 에서 이러한 실행을 지원하기 위한 노력이 진행되고 있습니다 .

예를 들어, 패키지 어딘가에서 시스템의 압축이 풀린 runit의 설치 후 유지 관리자 스크립트를 찾을 수 있습니다 /var/lib/dpkg/info/runit.postinst. 보시다시피 upstart가 있는지 감지하고 runsvdirupstart가 있으면 시작됩니다. systemd 및 runit.service.

불행히도 Ubuntu 14 이상에서는둘 다체계그리고업스타트가 설치되었습니다. 따라서 패키지의 설치 후 유지 관리자 스크립트는 startupstart 명령을 사용하여 upstart 작업을 실행하려고 시도합니다. 물론 upstart는 기본적으로 Ubuntu 15 이상의 시스템 전체 서비스 관리자가 아니며 upstart start명령은 작동하지 않습니다.

이 문제를 극복하기 위해 스크립트를 패치하는 방법에 대한 대략적인 아이디어는 다음과 같습니다.


-r /usr/share/debconf/confmodule을 테스트하는 경우;
  . /usr/share/debconf/confmodule
  데이터베이스 지우기
필리핀 제도

테스트하는 경우 -d /run/systemd/system ;
  systemctl이 runit.service를 시작합니다.
elif test -x /sbin/start;
  /sbin/start는 vdir을 실행합니다.
필리핀 제도

이상적이지는 않지만 시작입니다. runit.prerm또한 runit.postrm약간의 조정이 필요합니다.

추가 읽기

답변2

문제에 대한 임시 해결책을 찾았습니다. 원본 서버 등의 위치를 ​​메인 서버에서 핀란드, 에스토니아로 변경합니다. 이 심각한 문제를 일시적으로 해결합니다.

관련 정보