Page 4 of 5

Re: Error folding on GPU [OpenSUSE]

Posted: Sun Apr 24, 2016 9:32 pm
by calxalot
If OpenSUSE favors systemd services, you might convert to that and share your work. :)

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 4:05 pm
by DJViking
calxalot wrote:Does OpenSUSE have the start-stop-daemon command?
Does not look like it. It is a utility mostly seen on Debian/Ubuntu. However looks like Fedora does have it.

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 4:20 pm
by DJViking
calxalot wrote:If OpenSUSE favors systemd services, you might convert to that and share your work. :)
That is true, but it can also run init scripts such as /etc/init.d/FAHClient. I believe Fedora also uses systemd now, but I am not so sure about RedHat or CentOS which I believe still uses init. Though the latest SUSE Linux Enterprise 12 has moved to systemd too, so perhaps the latest RedHat/CentOS also have. Edit: It seems RedHat 7 does use systemd.

FAHClient is built with support for RedHat, CentOS and Fedora. Which platform is it built against? Those 3 are not equal to each other. A package built and compiled on Fedora might not necessary work with RedHat and CentOS and vice versa.

Running the same command as the init script manually as the user fahclient works perfectly:

Code: Select all

/usr/bin/FAHClient /etc/fahclient/config.xml  --run-as fahclient --pid-file=/var/run/fahclient.pid --daemon

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 5:44 pm
by DJViking
Looks like someone already has written a systemd service for FAHClient.
https://gist.github.com/lopezpdvn/81397197ffead57c2e98
However all this does is proxy to the init script /etc/init.d/FAHClient. A better solution would be a pure systemd service.

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 6:12 pm
by DJViking
I created the following systemd service

Code: Select all

[Unit]
Description=Folding@Home V7 Client
Documentation=https://folding.stanford.edu/home/the-software/
After=network.target

[Service]
PIDFile=/var/lib/fahclient/fahclient.pid
User=fahclient
Group=users
ExecStart=/etc/init.d/FAHClient start
ExecStop=/etc/init.d/FAHClient stop
ExecReload=/etc/init.d/FAHClient reload
KillMode=process

[Install]
WantedBy=multi-user.target
I changed PidFile location from /var/run to /var/lib/fahclient, because the fahclient user does not have write access to /var/run.
This works great.

Code: Select all

mintaka:/ # systemctl status fahclient.service 
fahclient.service - Folding@Home V7 Client
   Loaded: loaded (/etc/systemd/system/fahclient.service; enabled)
   Active: active (running) since ma. 2016-04-25 20:10:38 CEST; 8min ago
     Docs: https://folding.stanford.edu/home/the-software/
 Main PID: 2740 (FAHClient)
   CGroup: /system.slice/fahclient.service
           ├─2740 /usr/bin/FAHClient /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/lib/fahclient/fahclient.pid --daemon
           └─2742 /usr/bin/FAHClient --child --lifeline 2740 /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/lib/fahclient/fa...

mintaka:/ # ps -C FAHClient -o user,group,comm
USER     GROUP    COMMAND
fahclie+ users    FAHClient
fahclie+ users    FAHClient

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 8:06 pm
by calxalot
I think you can ditch the init.d script and simplify.
Something like this might be equivalent:

Code: Select all

[Unit]
Description=Folding@Home V7 Client
Documentation=https://folding.stanford.edu/home/the-software/
After=network.target

[Service]
User=fahclient
Group=users
ExecStart=/usr/bin/FAHClient /etc/fahclient/config.xml
Restart=always
KillMode=process

[Install]
WantedBy=multi-user.target
If there's a chance of a SIGHUP being sent to the client, you can add --service to ExecStart.

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 8:48 pm
by DJViking
I thought the same, but at least run the exact same command that init script does.

Code: Select all

ExecStart=/usr/bin/FAHClient /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/lib/fahclient/fahclient.pid --daemon
I was also thinking about ExecStop that would send finished data before killing the process, but FAHClient --send does not work if there is another instance running.

Is it possible to make a contribution to the FAHClient (GitHub) with such a systemd service file? Perhaps hoping some developer sees this and can incorporate the script in the next version of FAHClient.

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 8:53 pm
by calxalot
I'd say no.
It is preferred that systemd services do not fork (daemonize) and do not use a pid file.
--run-as is not needed because you have User.
The reason the client forks is so that it can keep the working client running. Which is not needed if you let systemd do restarts.
Don't need ExecStop, because the client will not fork, and have KillMode=process.

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 8:56 pm
by DJViking
Running the following command spawns two instances of FAHClient

Code: Select all

/usr/bin/FAHClient /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/lib/fahclient/fahclient.pid --daemon

Code: Select all

sverrem@mintaka:~> ps -aux | grep FAH
fahclie+  2740  0.0  0.0 21097356 6916 ?       Ssl  20:10   0:02 /usr/bin/FAHClient /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/lib/fahclient/fahclient.pid --daemon
fahclie+  2742  0.1  0.2 21687552 22576 ?      Sl   20:10   0:10 /usr/bin/FAHClient --child --lifeline 2740 /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/lib/fahclient/fahclient.pid --daemon
Running FAHClient without -daemon creates only one instance. I do not know why the second instance is created or what its purpose it.

Also I tried running without pid and the FAHClient didn't terminate. However that was with the init script. Perhaps it will terminate with systemd.

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 9:01 pm
by calxalot
Only one instance, managed by systemd, is what you want.
Please try what I suggested and let us know how it goes.
If it can't access the GPU, please also try setting the group to video.

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 9:04 pm
by DJViking
If I tried your modified version of the systemd service I am unable to start FAClient.

Code: Select all

mintaka:/etc/systemd/system # systemctl start fahclient.service 
mintaka:/etc/systemd/system # systemctl status fahclient.service 
fahclient.service - Folding@Home V7 Client
   Loaded: loaded (/etc/systemd/system/fahclient.service; enabled)
   Active: failed (Result: start-limit) since ma. 2016-04-25 23:03:43 CEST; 2s ago
     Docs: https://folding.stanford.edu/home/the-software/
  Process: 12464 ExecStart=/usr/bin/FAHClient /etc/fahclient/config.xml (code=exited, status=1/FAILURE)
 Main PID: 12464 (code=exited, status=1/FAILURE)

april 25 23:03:43 mintaka systemd[1]: fahclient.service start request repeated too quickly, refusing to start.
april 25 23:03:43 mintaka systemd[1]: Failed to start Folding@Home V7 Client.
I removed Restart=always

Code: Select all

mintaka:/etc/systemd/system # systemctl start fahclient.service 
mintaka:/etc/systemd/system # systemctl status fahclient.service 
fahclient.service - Folding@Home V7 Client
   Loaded: loaded (/etc/systemd/system/fahclient.service; enabled)
   Active: failed (Result: exit-code) since ma. 2016-04-25 23:07:05 CEST; 2s ago
     Docs: https://folding.stanford.edu/home/the-software/
  Process: 12710 ExecStart=/usr/bin/FAHClient /etc/fahclient/config.xml (code=exited, status=1/FAILURE)
 Main PID: 12710 (code=exited, status=1/FAILURE)

april 25 23:07:05 mintaka FAHClient[12710]: 21:07:05:ERROR:Exception: Failed to open 'log.txt': Failed to open 'log.txt': Permission denied: Permission denied

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 9:08 pm
by calxalot
Hmm, any log messages visible? Either in the client log.txt or the system log?

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 9:10 pm
by DJViking
The latest after I removed restart=always. I suspect that it is trying to store the log.txt where it does not have access. It does not use /var/lib/fahclient/log.txt

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 9:13 pm
by calxalot
Likely just a permissions problem with the fahclient home folder, or log.txt.
It might be that the working directory is not correct.
Try adding

WorkingDirectory=/var/lib/fahclient

to the service.

Re: Error folding on GPU [OpenSUSE]

Posted: Mon Apr 25, 2016 9:15 pm
by DJViking
calxalot wrote:Likely just a permissions problem with the fahclient home folder, or log.txt.
It might be that the working directory is not correct.
Try adding

WorkingDirectory=/var/lib/fahclient

to the service.
That worked, and folding on the GPU works.

Code: Select all

mintaka:/etc/systemd/system # systemctl start fahclient.service 
mintaka:/etc/systemd/system # systemctl status fahclient.service 
fahclient.service - Folding@Home V7 Client
   Loaded: loaded (/etc/systemd/system/fahclient.service; enabled)
   Active: active (running) since ma. 2016-04-25 23:15:06 CEST; 1s ago
     Docs: https://folding.stanford.edu/home/the-software/
 Main PID: 13279 (FAHClient)
   CGroup: /system.slice/fahclient.service
           └─13279 /usr/bin/FAHClient /etc/fahclient/config.xml

april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Started thread 1 on PID 13279
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Successfully acquired database lock
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Enabled folding slot 00: PAUSED gpu:0:GK106 [GeForce GTX 650 Ti] (by user)
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Enabled folding slot 01: PAUSED cpu:1 (by user)
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Started thread 8 on PID 13279
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Started thread 5 on PID 13279
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Started thread 6 on PID 13279
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Started thread 10 on PID 13279
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Started thread 9 on PID 13279
april 25 23:15:06 mintaka FAHClient[13279]: 21:15:06:Started thread 7 on PID 13279