CCL Home

Research

Software Community Operations

ftsh - The Fault Tolerant Shell

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
     end
end
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.

Documents

News Items