매일 장치를 재부팅하도록 크론 작업을 설정하려고 합니다. 어떤 이유로든 재부팅이 중단되는 경우 SysRq 재설정에 대한 안전한 콜백을 사용합니다(SSH가 종료되고 장치가 재부팅되지 않아 손실되고 다시 시작하려면 비용이 많이 드는 사람의 개입이 필요한 문제).
한동안 작동했던 스크립트는 다음과 같습니다.
5 5 * * * root /sbin/reboot -f; sleep 30; /bin/echo `date -u +'\%Y-\%m-\%dT\%H:\%M:\%SZ'` >> /var/log/player-reboot.error.log; echo 1 > /proc/sys/kernel/sysrq; sync; echo b > /proc/sysrq-trigger
그러나 이는 매우 잔인하며(하드 재부팅 -f) 일부 장치는 최근에 복구되지 않았습니다(매일 수천 개 이상).
무엇이 멈췄는지 잘 모르겠습니다(파일이 전혀 기록되지 않은 것 같아서 재부팅 자체가 이루어지거나 에코가 멈춘다고 할까요?
앰퍼샌드를 사용하고 절대 "잠금"하지 않고 결국 적절한 재설정이 발생하는지 확인하려고 했지만 전혀 작동하지 않는 것 같습니다(더 이상 재부팅하지 않음).
5 5 * * * root /sbin/shutdown -r +2 &; sleep 240; /bin/echo `date -u +'\%Y-\%m-\%dT\%H:\%M:\%SZ'` >> /var/log/player-reboot.error.log &; echo 1 > /proc/sys/kernel/sysrq; sleep 1; echo b > /proc/sysrq-trigger
cron 스크립트에서 앰퍼샌드를 사용할 수 있나요? 원하는 결과를 얻는 또 다른 더 현명한 방법을 알고 있습니까? 감사해요!