근본 원인에 더 가까이 다가 가기
문제는 종료시 실행되는 스크립트 인 것 같습니다.
해당 파일을 다음과 같이 식별했습니다.
find /etc/systemd -name *unattended*
나에게 관련 시스템 스크립트를 제공합니다 :
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
그런 다음 종료시 스크립트가 실행되었다고 알려줍니다.
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
근본 원인을 찾기 위해 더 깊이 조사
이 스크립트에는 /etc/apt/apt.conf.d/50unattended-upgrades-> Unattended-Upgrade :: InstallOnShutdown의 섹션과 관련된 섹션이 120 행에 있습니다.
/ usr / share / 무인 업그레이드 / 무인 업그레이드 셧다운 라인 120 :
if apt_pkg.config.find_b("Unattended-Upgrade::InstallOnShutdown", False):
문제 : 키워드 "False"가 필요하지만 apt conf에는 "false"(정확한 문자열 비교)를 추가해야합니다!
해결책
스톨 링 셧다운을 3 가지 방법으로 수정 / 해결 할 수있었습니다.
해결 방법 A
- /etc/apt/apt.conf.d/50에 "false"대신 "False"를 쓰십시오.
이 설정은 여기서 수정 한 파일이 무인 업그레이드로 덮어 쓰지 않기 때문에 실제 수정 사항이 제공 될 때까지 안전하게 업그레이드됩니다. 문제 : 근본 원인이 해결되면 다시 멈춤 종료가 발생하므로 해결 방법 B와 함께 사용하는 것이 좋습니다.
또는 : 대안 B
- /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service의 대기 시간을 기본값에서 15 초로 줄이십시오.
vim /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
[서비스]
타입 = 원샷
ExecStart = / usr / share / 무인 업그레이드 / 무인 업그레이드 셧다운
TimeoutStartSec = 15
이 설정은 여기서 변경 한 파일이 무인 업그레이드로 덮어 쓰기 될 수 있으므로 업그레이드에 안전하지 않습니다. 이 외에도 실제로 무언가를 고치는 것과는 거리가 멀지 만 시스템을 종료 할 때 시스템이 몇 분 동안 기다리지 않도록합니다. 무인 업그레이드로 업그레이드 한 후에는 다시 설정해야 할 수도 있습니다.
OR : 수정 C (업스트림에보고되어야 함)
- "거짓"대신 "거짓"을 예상하도록 / usr / share / 무인 업그레이드 / 무인 업그레이드 종료를 수정
패치 / usr / share / 무인 업그레이드 / 무인 업그레이드 셧다운 :
--- / tmp / unttended-upgrade-shutdown 2017-02-03 14 : 53 : 03.238103238 +0100
+++ / tmp / unttended-upgrade-shutdown_fix 2017-02-03 14 : 53 : 17.685589001 +0100
@@ -117,7 +117,7 @@
# 그것을 실행
p = 없음
apt_pkg.init_config ()
-apt_pkg.config.find_b ( "Unattended-Upgrade :: InstallOnShutdown", False) 인 경우 :
+ apt_pkg.config.find_b ( "무인 업그레이드 :: InstallOnShutdown", false) 인 경우 :
env = copy.copy (os.environ)
env [ "UNATTENDED_UPGRADES_FORCE_INSTALL_ON_SHUTDOWN"] = "1"
logging.debug ( "종료 모드에서 무인 업그레이드 시작")
결론
마지막 하나만 실제 수정입니다. 다른 두 가지 옵션은 실제 수정 사항이 구현 될 때까지 해결 방법입니다.
이것은 업스트림에서 수행되어야하며 이는 두 배포판 모두 데비안 (Debian Stretch에서 테스트)과 우분투 (Ubuntu 16.04.1에서 테스트) 모두에 영향을 미칩니다.
https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1661611 에서 버그 보고서를 열었습니다.