[tahoe-dev] Have some startup and maintenance facilities (was Re: erasure coding makes files more fragile, not less)

Kevin Reid kpreid at switchb.org
Thu Mar 29 01:13:28 UTC 2012

On Mar 28, 2012, at 16:54, Brian Warner wrote:

> We need better OS-integration code to make it easy to get a server to come up on each reboot. On OS-X that means a LaunchAgent or something.

LaunchDaemon. A LaunchAgent is per GUI-login session, a LaunchDaemon is global. This goes in /Library/LaunchDaemons/org.tahoe-lafs.tahoe.plist (or other appropriate reverse-DNS identifier, with matching Label value):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <string>tahoe</string> <!-- adjust to appropriate existant user -->
    <string>/usr/local/bin/tahoe</string> <!-- adjust to install path -->
    <string>--basedir=/Users/tahoe/.tahoe</string> <!-- adjust to appropriate user/basedir -->

Note the use of "tahoe run", as a LaunchDaemon must *not* daemonize itself or it will appear to have died and be in need of restarting.

> I've been saying forever that it's too hard/slow/inconvenient to get periodic repair to run automatically (cron jobs are soo gross, and suffer from the same energy-barrier problem).

Don't know what's wrong with cron jobs. crontab -e, add a line, done.

30	 2	*	*	*	~/bin/tahoe-repair-all

export LC_CTYPE=en_US.UTF-8
perl -e 'sleep rand() * 86400'
for item in `tahoe list-aliases | cut -f 1 -d :`; do
	echo '*** '"$item"
	tahoe deep-check --repair --add-lease $item: | perl -pe 's/^/\t/'

These are the tools I use. I would be pleased if these, equivalents, or improvements were included with Tahoe instead of being my private tools.

Kevin Reid                                  <http://switchb.org/kpreid/>

More information about the tahoe-dev mailing list