소프트웨어 업데이트를 위한 opkg 패키지를 만들고 있습니다.
이 패키지는 설치 후 재부팅이 필요하며 다음 재부팅 후에 일부 작업을 수행해야 합니다.
postinst 스크립트에 shutdown -h now를 추가했는데 너무 일찍 종료되어 opkg install 명령이 중단되는 것 같습니다.
그러면 opkg list-installed가 설치된 패키지를 나열하지 않는 것처럼 opkg 시스템은 패키지 정보를 기록하지 않습니다.
그래서 제가 해결하려는 질문은 OPKG 패키지의 postinst 스크립트에서 종료/다시 시작을 안정적으로 예약하는 방법입니다.
하지만 근본적인 질문은 현재 쉘의 모든 조상이 죽은 직후에 실행되지만 그보다 이전에는 실행되지 않는 쉘 스크립트에서 작업을 예약하는 방법입니다.
답변1
문제가 잘 정의되어 있지 않습니다. 하위 프로세스에서 상위 프로세스까지 프로세스 체인을 따라가면 결국 프로세스 1(init)에 도달하게 됩니다. 죽으면 시스템이 재부팅된다는 의미입니다.
컴퓨터를 다시 시작하는 것은 일반적으로 업그레이드의 일부로 수행되지 않습니다. 관리자만이 다시 시작해도 안전한 시기를 알 수 있기 때문입니다. 업그레이드 중에 재부팅하는 것은 절대 안전하지 않습니다. (예, Windows는 이 작업을 수행하며 하지 말아야 할 일의 빛나는 예입니다. 많은 Windows 사용자는 강제 업그레이드로 인해 재부팅이 발생하여 일자리를 잃은 끔찍한 이야기를 가지고 있습니다.)
업그레이드에 참여하는 사람이 있는 경우 가능한 한 빨리 재부팅하라는 메시지를 관리자에게 표시합니다.
업그레이드가 무인으로 수행되는 경우 자동 업그레이드 시스템이 다시 시작하도록 예약하십시오. 오직당신의서버에서 장애 조치를 활성화했거나 내장 장치에 의해 제어되는 생산 라인이 중지되었기 때문에 특정 시간에 안전하게 다시 시작하려면 특정 상황을 알 수 있도록 시스템을 업그레이드하십시오. 업그레이드 시스템이 실행된 opkg
다음 업그레이드가 필요한지 확인합니다. 예를 들어 /reboot_needed
파일이 존재하면 다시 시작될 수 있습니다(안전할 때).