Republished on my website, keeping this version here for historical reasons.
Install FAHClient as documented in the official guide. Stop the traditional init script service that was created and automatically started.
$ sudo /etc/init.d/FAHClient stop
Move the init script to another location. Path /usr/local/bin
can be changed,
but be sure to use the correct path in the service unit file of the next step.
$ sudo mv /etc/init.d/FAHClient /usr/local/bin
Copy the contents of the gist Systemd service unit for Folding@Home
Client into (a new)
file /etc/systemd/system/fahclient.service
. File contents included here:
[Unit]
Description=Folding@Home V7 Client
Documentation=https://folding.stanford.edu/home/the-software/
[Service]
Type=simple
PIDFile=/var/run/fahclient.pid
ExecStart=/usr/local/bin/FAHClient -v start
ExecReload=/usr/local/bin/FAHClient -v restart
ExecStop=/usr/local/bin/FAHClient -v stop
KillMode=process
[Install]
WantedBy=multi-user.target
Then update its ownership and permissions as below
$ sudo chown root:root /etc/systemd/system/fahclient.service
$ sudo chmod u=rw,go=r /etc/systemd/system/fahclient.service
The systemd service unit for FAHClient is installed. Reload systemd manager configuration
$ sudo systemctl daemon-reload
Query the status of service unit.
$ sudo systemctl status --full fahclient.service
Start and stop as a regular systemd service
$ sudo systemctl stop fahclient.service
$ sudo systemctl start fahclient.service
Folding@home is a distributed computing project for disease research that simulates protein folding, computational drug design, and other types of molecular dynamics. See also the Volunteer Computing page.
I have adopted the unit file as suggested while upgrading to the latest fahclient. Following were required to make it work on Debian 10 with NVIDIA drivers & kernel installed from backports:
MemoryDenyWriteExecute=yes
somehow prevents f@h from running on GeForce 20 GPU. f@h would just stop immediately after trying to start on GPU. There were little to nothing in the logs what the actual issue was. GPU and CUDA/OpenCL devices were detected normally by the fahclient.libOpenCL.so was not getting loaded with a unit file like this until i created a config file under
/etc/ld.so.conf.d
as described here. The fahclient user is in video group andclinfo
reports everything as expected if executed as said user even before the ld.so.conf.d config file was added.