reboot
wydaje się, że system plików root jest tylko do odczytu prawie natychmiast, powodując warunki wyścigu z jednym z moich procesów, który próbuje zapisać ustawienia do pliku podczas jego około 1-2 sekundowego wyłączenia.
Rezultatem sporadycznym jest pusty plik ustawień, ponieważ jest on obcięty, ale nie jest wypełniany w odpowiednim czasie.
Tworzę obejście tego procesu, ale nadal chciałbym dodać trochę rozsądku do reboot
dowództwo.
Teraz myślałem o aliasingu reboot
do reboot -d 5
dla jedynego konta w systemie, aby nikt nie przypadkowo nie wykonał natychmiastowego zamknięcia -d
wprowadza opóźnienie:
[hostname /root]# reboot --help 2>&1 | grep Delay
-d Delay interval for rebooting
Jednak BusyBox v1.13.3 wydaje się nie obsługiwać alias
w jego sh
realizacja:
[hostname /root]# alias reboot=reboot -d 5
-sh alias: not found
Jakie mam opcje?
sleep
przed wywołaniem Linuksareboot
(i nie wykonuje żadnej własnej sygnalizacji), i (b) nie bylibyśmy w stanie dystrybuować aktualizacji do apletu za pomocą naszego oprogramowania. Podejście do funkcji może jednak działać ... hmm.reboot
?kill(-1, SIGTERM)
(<signal.h>
) przed opóźnieniem; jeśli jest uruchomiony jako root, daje wszystkim procesom 'SIGTERM
'heads up przed apletem restartuSIGTERM - sleep(1) - SIGKILL
cykl