Print View

Folding@Home using daemontools
Updated: 10/21/2005


General Information

This guide will help you set up Folding@Home using Dan Bernstein's daemontools, for easy maintenance and also so that on a server reboot folding@home automatically comes back up.

Requirements

You will need the following items to be able to complete this guide:
  1. Root access to a FreeBSD machine
  2. Daemontools running
  3. Linux compatibility installed

Installing Linux Compat

Folding@home only makes Linux binaries.  If you do not have the Linux emulation mode enabled, then run the following command:
#
#
pkg_add -r linux_base-8
echo 'linux_enable="YES"' >> /etc/rc.conf
If you wish, you can compile from source, using the /usr/ports/emulators/linux_base-8/
At this point you need to restart, for the new linux emulation mode to become enabled.
# shutdown -r now

Setting up Folding@home

Here one creates the service directory and also a directory where the Folding@home client is run.
#
#
mkdir /usr/local/folding@home/
mkdir /usr/local/folding@home/root
Next we need to get the binary.  Yes this is the Linux binary eventhough it contains an .exe extension.
#
#
#
#
cd /usr/local/folding@home/root/
fetch http://www.stanford.edu/group/pandegroup/release/FAH502-Linux.exe
chmod +x FAH502-Linux.exe
brandelf -t Linux FAH502-Linux.exe
You can always get the latest version of the client at http://folding.stanford.edu/download.html.
#
#
#
mkdir /usr/local/folding@home/log
mkdir /usr/local/folding@home/env
mkdir /usr/local/folding@home/log/main
We create the directory structure needed for folding@home to be run under Dan Bernstein's daemontools.  We also need to chown/chmod them to the right permissions:
#
#
#
cd /usr/local/folding@home
chown -R nobody:nobody root env log/main
chmod 2755 root log log/main
Now before doing anything else, we need to get the client set up.  You need to give it a username to be able to say that you contributed, or you can stay anonymous.
#
#
#
cd root
setuidgid nobody ./FAH502-Linux.exe -configonly
cd ..
Next set up the run file, this is the most important file, as it runs your Folding@home client using daemontools' supervise, which will make sure it is always up.
#
#
#
#
#
#
#
#
#
cat << EOF > run
#!/bin/sh
exec 2>&1
exec envdir ./env sh -c '
  cd /usr/local/folding@home/root/
  exec setuidgid nobody /usr/bin/nice -n 20 /usr/local/folding@home/root/FAH502-Linux.exe -freeBSD
'
EOF
chmod 700 run
Logging is important.  Of course, we want to know how far along we are.
#
#
#
#
#
cat << EOF > log/run
#!/bin/sh
exec setuidgid nobody multilog t ./main
EOF
chmod 700 log/run

Starting Folding@home

Now, to get Folding@Home started using svscan and have it running under supervise, we have to let svscan know about our service.
#
#
cd /var/service
ln -s /usr/local/folding@home
It should now be running, to see if it really is running, check with ps.
# ps auxwwww | grep -i fah
You should see several different processes named FAH*-Core.exe, this means you are good to go.  To check how long it has been running, use svstat like follows:
# svstat /var/service/folding@home/

This guide is © 2005 - 2012 Bert JW Regeer.

Author: Bert JW Regeer
bsdguides at 0x58 dot com



Copyright 2003 - 2012 BSD Guides.  All rights reserved.

About | Terms of Use | Privacy | Contact