ftsh - The Fault Tolerant Shell

Note: This page is no longer maintained.
The fault tolerant shell has moved to The University of Notre Dame


The Fault-Tolerant Shell (ftsh) is a small language for system integration that makes failures a first class concept. Ftsh aims to combine the ease of scripting with very precise error semantics. It is especially useful in building distributed systems, where failures are common, making timeouts, retry, and alternation necessary techniques. For example:
try for 30 minutes
     cd /tmp
     rm -f data
     forany host in xxx yyy zzz
           wget http://${host}/fresh.data data
If any element of the script fails, all running process trees are reliably cleaned up, and the block is tried again with an exponential backoff. You might think of this as exception handling for scripts. To learn more, please read the technical manual, or a more philosophical paper.

Ftsh has built and run on Linux, Solaris, IRIX, and Cygwin. Your mileage may vary. Ftsh is released under the GNU General Public License. See the file COPYING for details.



Mailing Lists

Note: You must subscribe to a list before you are allowed to post to it. To subscribe to one of the mailing lists, send mail to majordomo@cs.wisc.edu with "subscribe listname" in the body. For example, to subscribe yourself to ftsh-announce, mail this to majordomo@cs.wisc.edu:
        subscribe ftsh-announce

News Items


Feel free to send questions, comments, and bug fixes to the ftsh-discuss mailing list. (Note that you have to subscribe first.) Douglas Thain also likes to get mail, but travels frequently and usually can't respond immediately.