Error folding on GPU [OpenSUSE]
Moderators: Site Moderators, FAHC Science Team
-
- Site Moderator
- Posts: 1139
- Joined: Sat Dec 08, 2007 1:33 am
- Location: San Francisco, CA
- Contact:
Re: Error folding on GPU [OpenSUSE]
If OpenSUSE favors systemd services, you might convert to that and share your work.
Re: Error folding on GPU [OpenSUSE]
Does not look like it. It is a utility mostly seen on Debian/Ubuntu. However looks like Fedora does have it.calxalot wrote:Does OpenSUSE have the start-stop-daemon command?
Re: Error folding on GPU [OpenSUSE]
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.calxalot wrote:If OpenSUSE favors systemd services, you might convert to that and share your work.
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]
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.
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]
I created the following systemd service
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
[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
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
-
- Site Moderator
- Posts: 1139
- Joined: Sat Dec 08, 2007 1:33 am
- Location: San Francisco, CA
- Contact:
Re: Error folding on GPU [OpenSUSE]
I think you can ditch the init.d script and simplify.
Something like this might be equivalent:
If there's a chance of a SIGHUP being sent to the client, you can add --service to ExecStart.
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
Re: Error folding on GPU [OpenSUSE]
I thought the same, but at least run the exact same command that init script does.
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.
Code: Select all
ExecStart=/usr/bin/FAHClient /etc/fahclient/config.xml --run-as fahclient --pid-file=/var/lib/fahclient/fahclient.pid --daemon
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.
-
- Site Moderator
- Posts: 1139
- Joined: Sat Dec 08, 2007 1:33 am
- Location: San Francisco, CA
- Contact:
Re: Error folding on GPU [OpenSUSE]
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.
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.
Last edited by calxalot on Mon Apr 25, 2016 8:59 pm, edited 2 times in total.
Re: Error folding on GPU [OpenSUSE]
Running the following command spawns two instances of FAHClient
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.
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
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.
Last edited by DJViking on Mon Apr 25, 2016 9:04 pm, edited 3 times in total.
-
- Site Moderator
- Posts: 1139
- Joined: Sat Dec 08, 2007 1:33 am
- Location: San Francisco, CA
- Contact:
Re: Error folding on GPU [OpenSUSE]
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.
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]
If I tried your modified version of the systemd service I am unable to start FAClient.
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: 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.
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
Last edited by DJViking on Mon Apr 25, 2016 9:08 pm, edited 1 time in total.
-
- Site Moderator
- Posts: 1139
- Joined: Sat Dec 08, 2007 1:33 am
- Location: San Francisco, CA
- Contact:
Re: Error folding on GPU [OpenSUSE]
Hmm, any log messages visible? Either in the client log.txt or the system log?
Re: Error folding on GPU [OpenSUSE]
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
-
- Site Moderator
- Posts: 1139
- Joined: Sat Dec 08, 2007 1:33 am
- Location: San Francisco, CA
- Contact:
Re: Error folding on GPU [OpenSUSE]
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.
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]
That worked, and folding on the GPU works.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.
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