일부 업데이트에서만 다시 시작해야하는 이유는 무엇입니까?


18

더 많은 업데이트에서 Ubuntu를 다시 시작하지 않아도되는 이유는 무엇입니까? 커널 업데이트 및 비디오 드라이버와 같은 경우 다시 시작하지 않고 변경 사항을로드 할 수 없다는 것을 알고 있습니다. 그러나 종종 다시 시작하지 않아도되는 매우 기본적인 패키지의 더 기본적인 업데이트가 궁금합니다. Telepathy, glibc, gtk 등과 같은 것들. 왜 이런 패키지가 업데이트를 위해 재시작이 필요하지 않습니까? 새 버전이 실제로 업데이트 직후에 실행됩니까?

또 다른 예는 Gwibber입니다. 최근에 gwibber가 실행되는 동안 Update Manager를 통해 Gwibber를 수신하고 업데이트했습니다. 업데이트가 성공적으로 완료되었습니다. Gwibber에서 수동으로 다시 시작하지 않고 새 버전을 실행하고 있습니까? 다른 패키지에서도 마찬가지입니까? (나는 mysql과 같은 것을 알고 있으며 아파치는 업데이트시 자동으로 다시 시작된다). 자동으로 다시 시작되지 않는 패키지의 경우 보안 수정의 보안 문제가 될 수 없습니까?

이것은 약 일주일 동안 OS X를 실행했기 때문에 발생합니다. 커널 / 비디오 드라이버와 관련이없는 경우에도 거의 모든 업데이트를 다시 시작해야합니다 (알 수있는 한 많은 정보를 제공하지는 않습니다) ). 내 친구는 애플이 강제로 대부분의 업데이트를 "다시"재시동한다고 재시동했다면 재시동하지 않으면 이상 할 것이라고 말했다. Windows는 최악의 거의 모든 설치하기 때문에 / 제거 또는 업데이트 (종종 취할 종료를 강제로 다시 시작해야합니다 매우 오랜 시간이). 이것은이 장소에서 다소 광범위 할 수 있지만 왜 다른 운영 체제가이를 다르게 처리합니까? 또는 우분투에 대해 더 구체적입니다. 우분투가 왜 더 엄격한 재시작 정책을 따르지 않습니까?

답변:


23

Windows에서 파일을 열거 나 실행할 때마다 Windows가 파일을 제자리에 잠급니다 (단순하지만 일반적으로 사실입니다). 다른 프로세스에 독점 잠금 기능이있어 파일을 삭제할 수없는 성가신 오류가 발생했을 수 있습니다. 그것. 그렇기 때문에 Windows가 자체적으로 업데이트되어야 할 때마다 재부팅해야합니다. Windows는 다음에 부팅 할 때 (파일에 잠금이없는 경우) 파일 교체 및 삭제 작업을 대기시킵니다.

반면, 리눅스는 잠겨있는 파일이 아니라 디스크의 기본 데이터 인 메커니즘을 가지고 있습니다. 이것은 사소한 차이로 보일 수 있지만 파일 시스템의 목차에있는 파일의 레코드는 이미 파일이 열려있는 프로그램을 방해하지 않고 삭제할 수 있음을 의미합니다. 따라서 파일이 여전히 실행 중이거나 사용 중일 때 파일을 삭제할 수 있으며 파일 테이블에 항목이 없어도 일부 프로세스에 대해 열린 핸들이있는 한 디스크에 계속 존재합니다. 이를 통해 Linux는 여전히 실행중인 프로그램을 완전히 대체 한 다음 프로그램을 다시 시작하거나 프로세스가 자연스럽게 종료 될 때까지 기다릴 수 있습니다. 이전 인스턴스가 종료되면

따라서 특정 파일이 어떤 식 으로든 특별하지 않은 한 (예를 들어 커널 이미지 파일 또는 유사하게 저수준 시스템에 속하는 파일 등) 업데이터는 일반적으로 다음과 같이 업데이트 할 수 있습니다. 나는 이것이 좋은 생각이 아닌 특별한 경우와 상황이 있다고 확신하지만, 대부분의 경우 괜찮습니다.

왜 OS X이 그렇게하는지에 관해서는, "만약"이론이 그럴듯하게 들린다.


1
Amazed의 요점을 설명하려면 test.py 파일을 만듭니다. 또는 로 입력하고 입력하라는 메시지가 표시되면 #!/usr/bin/env python print raw_input()이 파일을 실행합니다 . python test.pychmod +x test.py && ./test.pyrm test.py
raylu

대부분의 사용자 프로그램이 자동으로 다시 시작되지 않는 이유는 수명이 매우 짧고 시스템을 변경할 권한이 거의 없기 때문입니다. 로그 아웃했다가 다시 로그인 할 수 있다고 걱정되면 열려있는 모든 프로그램이 닫힙니다.
LassePoulsen

2
특히, dpkg는 파일을 foo.dpkg-new에 기록한 다음 이전 파일의 맨 위에 이름을 바꾸어 파일을 설치하므로 라이브러리 및 실행 파일의 원활한 업그레이드가 가능합니다.
콜린 왓슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.