답변:
일반적으로 프로세스 종료를 말하면 정규 종료 (SIGTERM)보다 프로세스를 종료하는 더 안전한 방법은 없습니다. 대화식 프로세스 인 경우 일반적으로 SIGINT 신호를 보내 (일반적으로 Ctrl+ 를 눌러 보내면) 더 안전하게 중지 할 수 있습니다 C. 이 신호는 그 자체가 프로세스에 의해 갇혀되고 있습니다 보통 정상적으로 중지 -이 들어요. ( 감사 Eliah )
패키지 관리와 관련하여 일종의 특별한 경우가 있습니다. APT 명령이 수 중에서 사용하는 DPKG 데이터베이스는 항상 작업이 완료되지 않았는지 여부를 감지 할 수 있습니다. 모든 패키지는 현재 상태 (예 : 압축 해제, 구성 등) 로 표시된 실제 상태를 갖 습니다. APT 프런트 엔드를 종료하면 데이터베이스가 손상되었지만 알려진 상태가됩니다. 잠금 파일은 모두 깨끗한 상태로 돌아온 후에 만 해제됩니다. 새로운 작업을 수행 할 수있을 때까지이 고정 파일을 가져와야합니다.
수정하는 방법은 프로세스를 시작하여 모든 패키지를 구성된 상태로 만드는 것입니다. 실제로 apt-get작업을 중단 한 경우 나중에 다음을 사용하여 작업을 완료 할 수 있습니다.
sudo dpkg --configure -a
고장난 상태에서 모든 구성된 상태로 복구하는 방법을 알고 있으며, 그런 의미에서 중단 된 위치부터 계속됩니다. 잠금 파일은 완료 될 때까지 그대로 남아 있으며, 그 이유는 부정한 상태에서 DPKG 데이터베이스에 대한 새 조작을 방지하기위한 것입니다.
SIGKILL (10 진 표현 9)을 보내는 것은 매우 안전하지 않습니다. 이 신호는 프로세스에 의해 포착되지 않지만 프로세스의 선호 여부에 관계없이 운영 체제 (커널)에 의해 전체 프로세스가 정리됩니다. 파일 시스템의 파일 상태가 손상된 상태로 남아있을 수 있습니다. 더 이상 다른 우아한 신호를 듣지 않으면이 신호를 보내지 마십시오.
apt-get에 오류가 발생하면 루트로 (즉, sudo모든 명령 전에) 다음을 수행합니다.
apt-get이라는 프로세스를 종료하십시오.
killall -9 apt-get
dpkg를 재구성하십시오.
dpkg --configure -a
apt-get 업데이트 :
적절한 업데이트
잘못 설치된 패키지를 포함한 업데이트 패키지 :
적절한 업그레이드
이것은 어딘가에서 배웠지 만 불행히도 정확히 어디에 있는지 기억할 수 없습니다.