Is there a command like
vi > out vi | out
That I could use to cause a watchdog reset of my embedded linux device?
If you have a watchdog on your system and a driver that uses
/dev/watchdog, all you have to do is kill the process that is feeding it; if there is no such process, then you can
touch /dev/watchdog once to turn it on, and if you don't touch it again, it will reset.
You also might be interested in resetting the device using the "magic sysrq" way. If you have a kernel with the
CONFIG_MAGIC_SYSRQ feature compiled in, then you can
echo 1 > /proc/sys/kernel/sysrq to enable it, then
echo b > /proc/sysrq-trigger to reboot. When you do this, it reboots immediately, without unmounting or or syncing filesystems.
If you think the watchdog is running OK, and want to test that it really is capable of recovering a crashed system, then you can do one better than Shawn's answer by using the "magic sysrq" to crash the system with a kernel panic. Syncing your file system first is a good idea, so do something like this as root:
sync; sleep 2; sync; echo c > /proc/sysrq-trigger
That should cause a kernel panic if the sysrq is enabled. Then if you wait around 60 seconds (typical time-out for the watchdog module) you should see the machine reboot. Please note this will only work with hardware watchdogs and not the 'softdog' module.
Just putting it in one line from previous two posts:
echo 1 | sudo tee -a /proc/sys/kernel/sysrq; sync; sleep 2; sync; echo c | sudo tee -a /proc/sysrq-trigger