何とでも読み取り可。nowayout 指定しても Magic Close はできると思い込
んでた。が、nowayout の方が強いと言うか、nowayout を指定してしまうと
Magic Close すらできない。
- soft_margin: int
- Watchdog soft_margin in seconds.
(0 < soft_margin < 65536, default=60) - nowayout: int
- Watchdog cannot be stopped once started
(default= [config WATCHDOG_NOWAYOUT?]) - soft_noboot: int
- Softdog action, set to 1 to ignore reboots, 0 to reboot
SIG_INT で止められたら Magic Close。root になってまずは nowayout なし#!/bin/sh exec 3> /dev/watchdog trap "echo 'send V'; echo -n V >&3; exit 0" INT while :; do echo >&3 sleep 4 done
で Magic Close の場合は
Magic Close しない場合は (rmmod しないで引き続き)# modprobe softdog soft_margin=10 nowayout=0 soft_noboot=1 # ./swd.sh ^Csend V (しばらく待った後に Ctrl-c) # dmesg | tail ... [ 3010.493992] Software Watchdog Timer: 0.07 initialized. soft_noboot=1 soft_margin=10 sec (nowayout= 0)
リブートだけど soft_noboot 指定したのでメッセージだけ。# ./swd.sh ^Z (Ctrl-z) [1]+ Stopped ./swd.sh # (しばらく - soft_margin で指定した10 秒以上待つ) # dmesg | tail ... [ 3010.493992] Software Watchdog Timer: 0.07 initialized. soft_noboot=1 soft_margin=10 sec (nowayout= 0) [ 3241.819563] SoftDog: Triggered - Reboot ignored.
次に nowayout 指定すると# fg ./swd.sh ^Csend V (Ctrl-c) # rmmod softdog
'V' を# modprobe softdog soft_margin=10 nowayout=1 soft_noboot=1 # ./swd.sh ^Csend V (Ctrl-c) # (10 秒以上待って) # dmesg | tail ... [ 3757.016487] Software Watchdog Timer: 0.07 initialized. soft_noboot=1 soft_margin=10 sec (nowayout= 1) [ 3811.572991] SoftDog: Unexpected close, not stopping watchdog! [ 3821.580111] SoftDog: Triggered - Reboot ignored.
すると Magic Close も何のその。書き込みなくば再起動という結果。
とってもシンプルだけど先の swd.sh は
でソレナリには動くらしい。nowayout 指定せず Magic Close 使ってリブートnohup ./swd.sh > /var/log/watchdog.log 2>&1 &
せずの停止は
# killall -INT swd.sh # cat /var/log/swd.log nohup: ignoring input send V
0 件のコメント:
コメントを投稿