This is the README for fallback-reboot version VERSION. ----- fallback-reboot is distributed under the terms of the FSF's GPL v2. For full licensing terms, see the file COPYING. ----- You can always find the latest version of fallback-reboot at http://dcs.nac.uci.edu/~strombrg/fallback-reboot ----- If you run it as root, say from an rc script, then it can be used as a last-resort remote-reboot facility. And I do mean last-resort; it doesn't even try to sync your disks, it just goes down hard and fast, on the assumption that you've already tried the good ways, and this is all that's left. ----- I've carefully set up the Makefile (augmented with a python script) to give you a random password, because I knew that if I distributed this package with a default password, some clown somewhere wouldn't bother to change the password and get into trouble. So there you go, you get a random, long password, but you can change it to something else if you want. I believe that using a hard-to-type random password is more effective at getting people to change a password, than giving them a password like "ChangeMe". ----- The program is at a lowish version number only because it hasn't been deployed anywhere that widely yet. ----- The program sits in the background, after doing an mlockall() to keep itself from being paged, and listening for connections on a compiled-in port number (3002 by default in the current incarnation, but I may look for a better port later), reads a password from that port, and if the password is correct, the program attempts a reboot -without- doing any sync()'s, or any other form of disk I/O. Yes, this means you could lose data, but then you already tried the orderly shutdown procedures, and they didn't work, right? ----- The preferred way to invoke it once a system gets pretty stuck, is to do something like the following: $ fallback-reboot-client remote.host.com Connected to cryptographic version of fallback-reboot Enter password: ----- However, the old way should mostly continue to work: telnet confused.host.com 3002 This is fallback-reboot version VERSION. Enter password: ----- BTW, if telnet (or fallback-reboot-client) just hangs instead of giving you a password prompt, the first thing to check is to see if you've neglected to punch a hole through your personal firewall (iptables, ipchains, whatever). ----- Server-side usage is like: #!/bin/sh /usr/local/sbin/fallback-reboot & ...I recommend putting this in /etc/rc3.d or rc5.d or whatever. You can often tell which runlevel you need, with "who -r". On Tru64, you may want to use my "daemon" program, like: /usr/local/sbin/daemon /usr/local/sbin/fallback-reboot & ...because at least -some- versions of Tru64 don't finish changing runlevels until all the programs started from the rc directory for that runlevel terminate - "daemon" gets around that. BTW, I -don't- recommend starting it like: /usr/local/sbin/fallback-reboot > /var/adm/fb.out 2>&1 ...or similar, because then you're getting back into disk I/O, which is a big part of what we're trying to avoid to gain accessibility/reliability. ----- I may someday do a getservbyname() for the port number, and possibly put the password in a file all by itself. ----- The current version works on Linux and Solaris. I may want to port it to AIX, IRIX and/or Tru64 as well later. ----- As far as linux versions go, I've built the program on Redhat 9, Redhat Enterprise Linux 3, Fedora Core 2 and Fedora Core 3, all with no errors despite compiling with -ansi -pedantic -Wall (a nice, high warning level). Also, I built it on Solaris 8 (again with no errors with the high warning level). As far as actually <i>running</i> it, I've only tried RHEL 3, FC3 and Solaris 9, where it appears to be working as intended. ----- If you disconnect after telnet'ing, but before entering a password, fallback-reboot will send some ominous looking errors to the TTY you started it from. Don't worry too much about them, as long as fallback-reboot keeps waiting around for the next authentication attempt. ----- fallback-reboot will attempt to confirm whether the reboot is working or not, but it may not be able to for obvious reasons. :) ping is your friend. BTW, if the machine isn't even pingable, you usually don't need to bother trying this program. ----- Naturally, when rolling out fallback-reboot, you need some sort of means of collecting the keys somewhere, so that you have them when you need them! :) We use srsh+gpg for this, but you could use ssh or scp or similar about as well. ----- Enjoy. ----- Dan Stromberg, Sun Aug 29 19:50:09 PDT 2004, strombrg@gmail.com, http://stromberg.dnsalias.org/~strombrg