Linux 시스템에 재부팅 명령(또는 종료) 명령을 보내면 해당 메시지가 어딘가에 보관되며 쿼리할 수 있습니다. 즉, 재부팅 명령을 보낸 다음 다른 명령을 실행하여 내 컴퓨터가 재부팅(또는 종료) 모드에 있는지 확인합니다(즉시 재부팅되지 않으므로 재부팅하는 데 시간이 좀 걸리므로 확인하겠습니다).
편집하다
서버가 클라이언트에 명령 중 하나를 보냅니다. (내 서버와 클라이언트는 Java로 코딩되어 있습니다.) 즉, shutdown 명령을 보낸 후 ping을 실행하면 컴퓨터가 종료되지만 여전히 활성 상태일 수 있습니다(2초 후에 ping이 실행될 수 있습니다.) 클라이언트가 종료(또는 다시 시작) 명령을 받았는지 확인하기 위해 클라이언트에 쿼리할 수 있습니다. 클라이언트가 아직 살아 있더라도 쿼리를 클라이언트에 가져올 수 없으면 클라이언트가 종료(또는 다시 시작)된다는 점을 수락하겠습니다. 존재하지 않는다는 뜻이므로 종료(또는 다시 시작)된 것으로 인정하겠습니다. 내 컴퓨터에 이와 같은 쿼리를 어떻게 할 수 있나요?
답변1
다시 시작하는 동안,런레벨6으로 설정합니다(0은 꺼짐, 1은 유지 관리 모드, 2-5는 정상 작동을 의미).
if [ "$(runlevel | sed 's/.* //')" = 6 ]; then
echo "A reboot is in progress"
fi
재부팅이 시작된 후 시스템이 여전히 명령을 받아들이는 아주 작은 시간(보통 1초 미만)만 있기 때문에 이는 유용하지 않을 것입니다.
컴퓨터를 다시 시작한 후 알림이 필요한 경우 필요한 모든 서비스를 시작한 후 시작 중에 메시지를 보내도록 합니다(ssh, 이메일, SNMP 또는 편리한 모든 방법을 통해).