Is there a way in Linux Mint 19.1 to delay boinc start at boot?

Message boards : GPUs : Is there a way in Linux Mint 19.1 to delay boinc start at boot?
Message board moderation

To post messages, you must log in.

AuthorMessage
Keithsplace

Send message
Joined: 28 Feb 16
Posts: 12
United States
Message 91468 - Posted: 13 May 2019, 18:07:45 UTC
Last modified: 13 May 2019, 18:19:02 UTC

With no delay it starts automatically at boot. Not giving enough time for graphics drivers to start.
it's causing an issue with no GPU unless I restart boinc after boot.
Delaying Boinc-Manager does not solve it. At boot Boinc starts projects in the post up.

In other words: If I do a
sudo /etc/init.d/boinc-client restart
after the box is booted,
then the GPU is found and used for projects. But if I just reboot I get the "no usable GPU found."
Win10 x64-Acer-AMD x2 3.1GHz-8GB-Radeo 1GB
Mint19.1 x64-ASUS-Intel 2.7GHz-8GB-nVidia 1GB
Mint19.1 x64-Dell-Xeon 2.40GHzX4-16GB-nVidia 2GB
Lite3.8 x64-ASRock-AMD2800+-2GB-nVidia 2GB
Bodhi x64-Acer-AMD 1600MHz-1G
ID: 91468 · Report as offensive
Richard Haselgrove
Volunteer moderator
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 3383
United Kingdom
Message 91469 - Posted: 13 May 2019, 19:06:32 UTC - in response to Message 91468.  

I started typing 'Linux delay serv...' into Google, knowing the BOINC runs as a service under Linux.

It's a common enough question for Google to autocomplete it as

linux delay service startup on boot
If you paste that into the search engine of your choice, you should get some good hints.

I'm not a Linux person, but I think that I've seen this question often enough to propose that we ought to have the delay built in to the systemd we ship out with the repository ppas (if I'm not muddling two different bits of terminology there).

If you find a working solution among the search results, please post it here, or if a Linux specialist reading here would like to take up the challenge, we could maybe fix this at source.
ID: 91469 · Report as offensive
Profile Keith Myers
Avatar

Send message
Joined: 17 Nov 16
Posts: 217
United States
Message 91470 - Posted: 13 May 2019, 22:48:04 UTC

I would first try to add a SLEEP 60 to the beginning of the startup boinc-client script in /etc/init.d/boinc-client
sleep 60
set -e
. /lib/lsb/init-functions

If that doesn't work I would then try to add an AFTER statement in the service startup script in /lib/systemd/system/boinc-client.service

[Unit]
Description=Berkeley Open Infrastructure Network Computing Client
After=network.target
After=multi.user.target


The first suggestion simply tells the system to wait 60 seconds before executing the main parts of the boinc-client script. Disadvantage is that it will always take 60 seconds to restart the service after stopping it and restarting it.

The second suggestion tells the service not to start until the video drivers are loaded which the multi.user.target is defined for.
ID: 91470 · Report as offensive
Germano

Send message
Joined: 21 May 16
Posts: 36
Italy
Message 91521 - Posted: 16 May 2019, 13:56:36 UTC
Last modified: 16 May 2019, 14:39:49 UTC

Hello, could you please provide following infos:

    * BOINC client version
    * Videocard name, driver version, where you downloaded the driver
    * output of # cat /usr/lib/systemd/system/boinc-client.service



Thank you

ID: 91521 · Report as offensive
Profile JStateson
Avatar

Send message
Joined: 27 Jun 08
Posts: 411
United States
Message 91552 - Posted: 19 May 2019, 17:28:48 UTC
Last modified: 19 May 2019, 17:41:04 UTC

I have run into the same problem with five RX560 and 18.04 Minimal Desktop. Googling I see where boinc-client can run behind al other scrips. Tried it:

Renamed all boinc_client in Rc0...Rc6 from "01" to "91" which forces it as the last script to run but that did not fix the problem.

I can put a sleep 300 or so into the boinc_client script but I think that blocks. Since this is the last script anyway, maybe that is ok?

There are five RX560 and it seems I need about 4-5 minutes or so to allow 18.04 to stabilize.

I did not see an "autostart" at ./configure so I am not running that version with the autostart.

I am guessing I could always add at script that runs in background

MyScript &

where MyScript is actually the boinc-client with the sleep 300 delay.

I would need to pass arguments to but I don't want delay when running from command line. This gets confusing and I am no expert on Linux.

amdgpu-pro-19.10-785425-ubuntu-18.04.tar
on
ubuntu-18.04.2-desktop-amd64.iso
with RX560s

[EDIT] Just thought more about this. I would have to move boinc-client out of init.d into some /bin
In init.d I need to add a script that starts another script in background. That other script would do the delay and then run the real boinc-client.

As usual I would have to debug ownership and access properties for all scripts which is a PITA.
ID: 91552 · Report as offensive
Germano

Send message
Joined: 21 May 16
Posts: 36
Italy
Message 91553 - Posted: 19 May 2019, 17:35:38 UTC - in response to Message 91552.  

BeemerBiker, could you please show us the output of
# cat /usr/lib/systemd/system/boinc-client.service
ID: 91553 · Report as offensive
Profile JStateson
Avatar

Send message
Joined: 27 Jun 08
Posts: 411
United States
Message 91554 - Posted: 19 May 2019, 17:47:19 UTC - in response to Message 91553.  
Last modified: 19 May 2019, 18:04:01 UTC

[size=12]
BeemerBiker, could you please show us the output of
# cat /usr/lib/systemd/system/boinc-client.service


Something wrong with that, there is no "system" nor any reference to boinc

jstateson@rx560:/usr/lib$ cd systemd
jstateson@rx560:/usr/lib/systemd$ ls
boot           system-environment-generators  user-environment-generators
catalog        tests                          user-generators
logind.conf.d  user                           user-preset
jstateson@rx560:/usr/lib/systemd$ find . -name "*boinc*" -print
jstateson@rx560:/usr/lib/systemd$


[EDIT] there are refs to boinc in syslog, will that do??

syslog:May 19 11:33:17 rx560 boinc[1636]: 19-May-2019 11:33:17 [---] Exiting
syslog:May 19 11:33:54 rx560 boinc[838]: 19-May-2019 11:33:54 [---] Starting BOINC client version 7.9.3 for x86_64-pc-linux-gnu
syslog:May 19 11:33:54 rx560 boinc[838]: 19-May-2019 11:33:54 [---] log flags: file_xfer, sched_ops, task
syslog:May 19 11:33:54 rx560 boinc[838]: 19-May-2019 11:33:54 [---] Libraries: libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
syslog:May 19 11:33:54 rx560 boinc[838]: 19-May-2019 11:33:54 [---] Data directory: /var/lib/boinc-client
syslog:May 19 11:33:55 rx560 boinc[838]: 19-May-2019 11:33:55 [---] No usable GPUs found
syslog:May 19 11:33:55 rx560 boinc[838]: 19-May-2019 11:33:55 [---] app version refers to missing GPU type ATI
syslog:May 19 11:33:55 rx560 boinc[838]: 19-May-2019 11:33:55 [SETI@home] Application uses missing ATI GPU
syslog:May 19 11:33:55 rx560 boinc[838]: 19-May-2019 11:33:55 [---] app version refers to missing GPU type ATI
syslog:May 19 11:33:55 rx560 boinc[838]: 19-May-2019 11:33:55 [SETI@home] Application uses missing ATI GPU
syslog:May 19 11:33:55 rx560 boinc[838]: 19-May-2019 11:33:55 [---] app version refers to missing GPU type ATI
syslog:May 19 11:33:55 rx560 boinc[838]: 19-May-2019 11:33:55 [SETI@home] Application uses missing ATI GPU
syslog:May 19 11:33:55 rx560 boinc[838]: 19-May-2019 11:33:55 [SETI@home] Missing coprocessor for task blc25_2bit_guppi_58340_41306_GJ876_0038.19434.409.19.28.102.vlar_0


Maybe I have an old distribution. I got 18.04 from here
https://www.ubuntu.com/download/desktop
all I did after getting it to work was
apt-get install boinc-client

have no idea where that came from but AFAICT it is not the lastest and greatest.
ID: 91554 · Report as offensive
Germano

Send message
Joined: 21 May 16
Posts: 36
Italy
Message 91555 - Posted: 19 May 2019, 18:02:01 UTC - in response to Message 91554.  

I have been told that on Ubuntu systemd unit file should be under /lib/systemd/system
Please find boinc systemd unit file and paste it here
ID: 91555 · Report as offensive
Profile JStateson
Avatar

Send message
Joined: 27 Jun 08
Posts: 411
United States
Message 91556 - Posted: 19 May 2019, 18:09:11 UTC - in response to Message 91555.  
Last modified: 19 May 2019, 18:10:08 UTC

I have been told that on Ubuntu systemd unit file should be under /lib/systemd/system
Please find boinc systemd unit file and paste it here


working on it. did find searching from root.
[sudo] password for jstateson:
root@rx560:/# find . -name "boinc-client.service" -print
./lib/systemd/system/boinc-client.service
./etc/systemd/system/multi-user.target.wants/boinc-client.service
find: ‘./run/user/1000/gvfs’: Permission denied
./sys/fs/cgroup/pids/system.slice/boinc-client.service
./sys/fs/cgroup/devices/system.slice/boinc-client.service
./sys/fs/cgroup/systemd/system.slice/boinc-client.service
./sys/fs/cgroup/unified/system.slice/boinc-client.service
./var/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/boinc-client.service


===========here========
HOWEVER, THIS IS PROBABLY FROM THE RESTART
SHOULD I REBOOT TO GENERATE THE PROBLEM??
======================
root@rx560:/lib/systemd/system# ls -l boin*
-rw-r--r-- 1 root root 418 May 22  2018 boinc-client.service
root@rx560:/lib/systemd/system# cat boinc-client.service
[Unit]
Description=Berkeley Open Infrastructure Network Computing Client
Documentation=man:boinc(1)
After=network-online.target

[Service]
ProtectHome=true
Type=simple
Nice=10
User=boinc
WorkingDirectory=/var/lib/boinc
ExecStart=/usr/bin/boinc
ExecStop=/usr/bin/boinccmd --quit
ExecReload=/usr/bin/boinccmd --read_cc_config
ExecStopPost=/bin/rm -f lockfile
IOSchedulingClass=idle

[Install]
WantedBy=multi-user.target
root@rx560:/lib/systemd/system#
ID: 91556 · Report as offensive
Profile JStateson
Avatar

Send message
Joined: 27 Jun 08
Posts: 411
United States
Message 91557 - Posted: 19 May 2019, 18:18:58 UTC

Don't see much useful in that file
ID: 91557 · Report as offensive
Germano

Send message
Joined: 21 May 16
Posts: 36
Italy
Message 91558 - Posted: 19 May 2019, 18:22:36 UTC - in response to Message 91557.  
Last modified: 19 May 2019, 18:23:14 UTC

Don't see much useful in that file

I do see instead. I had to understand if that happened even with BOINC upstream systemd unit file.
Can you also show us the output of
# systemctl status boinc-client
# lsmod
ID: 91558 · Report as offensive
Profile JStateson
Avatar

Send message
Joined: 27 Jun 08
Posts: 411
United States
Message 91559 - Posted: 19 May 2019, 18:35:18 UTC - in response to Message 91558.  
Last modified: 19 May 2019, 18:38:00 UTC

Don't see much useful in that file

I do see instead. I had to understand if that happened even with BOINC upstream systemd unit file.
Can you also show us the output of
# systemctl status boinc-client
# lsmod


http://stateson.net/images/boinc_info.txt

There is a message when I log in about packages that can be updated and security concerns. I am going to update.
 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch

0 packages can be updated.
0 updates are security updates.

Your Hardware Enablement Stack (HWE) is supported until April 2023.
Last login: Sun May 19 13:27:55 2019 from 192.168.1.212
jstateson@rx560:~$


not sure about livepatch
ID: 91559 · Report as offensive
Germano

Send message
Joined: 21 May 16
Posts: 36
Italy
Message 91560 - Posted: 19 May 2019, 18:43:51 UTC

This problem is going to be addressed upstream on Github, among BOINC issues.
Thank you
ID: 91560 · Report as offensive
Richard Haselgrove
Volunteer moderator
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 3383
United Kingdom
Message 91561 - Posted: 19 May 2019, 19:33:09 UTC

I see one possible point of confusion: BeemerBiker is showing us logs relating to an old, development version of BOINC (v7.9.3 - note the 'odd' middle integer), whereas Germano will be seeking to build onwards and upwards from the current release version 7.14.2
ID: 91561 · Report as offensive
Profile JStateson
Avatar

Send message
Joined: 27 Jun 08
Posts: 411
United States
Message 91562 - Posted: 19 May 2019, 20:21:37 UTC - in response to Message 91561.  
Last modified: 19 May 2019, 20:22:21 UTC

I see one possible point of confusion: BeemerBiker is showing us logs relating to an old, development version of BOINC (v7.9.3 - note the 'odd' middle integer), whereas Germano will be seeking to build onwards and upwards from the current release version 7.14.2


yes, I posted about that earlier but it was an edit "afterthought" about 1/2 hour after the original post. is there as way to get the latest? I use the "apt-get" for everything.

quote"
Maybe I have an old distribution. I got 18.04 from here
https://www.ubuntu.com/download/desktop
all I did after getting it to work was
apt-get install boinc-client

have no idea where that came from but AFAICT it is not the lastest and greatest
"
ID: 91562 · Report as offensive
MarkJ
Help desk expert

Send message
Joined: 5 Mar 08
Posts: 216
Australia
Message 91565 - Posted: 20 May 2019, 10:05:06 UTC
Last modified: 20 May 2019, 10:19:21 UTC

There is a similar query about delaying service startup on StackOverflow. See https://stackoverflow.com/questions/43001223/how-to-ensure-that-there-is-a-delay-before-a-service-is-started-in-systemd

There are a few suggestions in there but I think using a timer and disabling the service is probably the easier one for you.

It would be better if BOINC could do it as a config option as not all of us will want a delay and then there are the many different ways of doing it (just look at the message thread I linked to) and the different systemd/initd used by different flavours of Linux.

BOINC already has a start_delay config option, however thats after its got going and before running tasks. Can we move that delay so that it occurs before the GPU detection? That way we don’t need another config option.
MarkJ
ID: 91565 · Report as offensive
Profile JStateson
Avatar

Send message
Joined: 27 Jun 08
Posts: 411
United States
Message 91567 - Posted: 20 May 2019, 13:24:37 UTC - in response to Message 91565.  
Last modified: 20 May 2019, 13:30:00 UTC

There is a similar query about delaying service startup on StackOverflow. See https://stackoverflow.com/questions/43001223/how-to-ensure-that-there-is-a-delay-before-a-service-is-started-in-systemd

There are a few suggestions in there but I think using a timer and disabling the service is probably the easier one for you.

It would be better if BOINC could do it as a config option as not all of us will want a delay and then there are the many different ways of doing it (just look at the message thread I linked to) and the different systemd/initd used by different flavours of Linux.

BOINC already has a start_delay config option, however thats after its got going and before running tasks. Can we move that delay so that it occurs before the GPU detection? That way we don’t need another config option.



I looked at that thread and tried
ExecStarPre=/bin/sleep 60
but BOINC did not start. Found following error in syslog
May 20 07:30:16 rx560 systemd[1]: boinc-client.service: Start-pre operation timed out. Terminating.
May 20 07:30:16 rx560 systemd[1]: boinc-client.service: Failed with result 'timeout'.
May 20 07:30:16 rx560 systemd[1]: Failed to start Berkeley Open Infrastructure Network Computing Client.


Following was my mod:

[Unit]
Description=Berkeley Open Infrastructure Network Computing Client
Documentation=man:boinc(1)
After=network-online.target

[Service]
ProtectHome=true
Type=simple
Nice=10
User=boinc
WorkingDirectory=/var/lib/boinc
ExecStartPre=/bin/sleep 60
ExecStart=/usr/bin/boinc
ExecStop=/usr/bin/boinccmd --quit
ExecReload=/usr/bin/boinccmd --read_cc_config
ExecStopPost=/bin/rm -f lockfile
IOSchedulingClass=idle

[Install]
WantedBy=multi-user.target


I would have thought this would work. I verified that sleep was at /bin
jstateson@rx560:/bin$ ls -l sleep
-rwxr-xr-x 1 root root 35000 Jan 18  2018 sleep
jstateson@rx560:/bin$



Why didn't this work? Ownership? Attributes? I assume it terminated because it could not be executed??

[EDIT] I have 4 AMD S9x00 cards on Win10x64 system and had to add a 5 minute delay in the task scheduler as recommended by Jord. Your suggest about using the cc_config is the way to go. How would this get into the Ubuntu release? I have 7.9.3 and that is not even listed as a download at Berkeley. All I see there is 7.4.22. Is there even a 7.14.2 for Linux?
ID: 91567 · Report as offensive
Profile JStateson
Avatar

Send message
Joined: 27 Jun 08
Posts: 411
United States
Message 91568 - Posted: 20 May 2019, 15:00:11 UTC
Last modified: 20 May 2019, 15:50:08 UTC

Needed to add
TimeoutSec=infinity

else time out default is 1min 30sec which is too short

I had actually used 300 not the 60 I wrote earlier. The 60 would not have triggered the timeout but it was not long enough for GPU detection.

This did work fine
1			5/20/2019 10:22:37 AM	Starting BOINC client version 7.9.3 for x86_64-pc-linux-gnu	
2			5/20/2019 10:22:37 AM	log flags: file_xfer, sched_ops, task	
3			5/20/2019 10:22:37 AM	Libraries: libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3	
4			5/20/2019 10:22:37 AM	Data directory: /var/lib/boinc-client	
5			5/20/2019 10:22:37 AM	OpenCL: AMD/ATI GPU 0: Radeon RX 560 Series (driver version 2841.4, device version OpenCL 1.2 AMD-APP (2841.4), 3812MB, 3812MB available, 2449 GFLOPS peak)	
6			5/20/2019 10:22:37 AM	OpenCL: AMD/ATI GPU 1: Radeon RX 560 Series (driver version 2841.4, device version OpenCL 1.2 AMD-APP (2841.4), 4059MB, 4059MB available, 2449 GFLOPS peak)	
7			5/20/2019 10:22:37 AM	OpenCL: AMD/ATI GPU 2: Radeon RX 560 Series (driver version 2841.4, device version OpenCL 1.2 AMD-APP (2841.4), 4059MB, 4059MB available, 2449 GFLOPS peak)	
8			5/20/2019 10:22:37 AM	OpenCL: AMD/ATI GPU 3: Radeon RX 560 Series (driver version 2841.4, device version OpenCL 1.2 AMD-APP (2841.4), 4059MB, 4059MB available, 2449 GFLOPS peak)	
9			5/20/2019 10:22:37 AM	OpenCL: AMD/ATI GPU 4: Radeon RX 560 Series (driver version 2841.4, device version OpenCL 1.2 AMD-APP (2841.4), 4059MB, 4059MB available, 2449 GFLOPS peak)	
10			5/20/2019 10:22:37 AM	[libc detection] gathered: 2.27, Ubuntu GLIBC 2.27-3ubuntu1	
11			5/20/2019 10:22:37 AM	Host name: rx560	
12			5/20/2019 10:22:37 AM	Processor: 2 GenuineIntel Intel(R) Celeron(R) CPU G1840 @ 2.80GHz [Family 6 Model 60 Stepping 3]	
13			5/20/2019 10:22:37 AM	Processor features: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmper	
14			5/20/2019 10:22:37 AM	OS: Linux Ubuntu: Ubuntu 18.04.2 LTS [4.18.0-20-generic|libc 2.27 (Ubuntu GLIBC 2.27-3ubuntu1)]	
ID: 91568 · Report as offensive
Germano

Send message
Joined: 21 May 16
Posts: 36
Italy
Message 91834 - Posted: 14 Jun 2019, 13:05:18 UTC

Among people experiencing this problem, does anybody have a Fedora/RHEL/CentOS distribution? I am going to produce a patch prototype to fix this problem
ID: 91834 · Report as offensive
Germano

Send message
Joined: 21 May 16
Posts: 36
Italy
Message 91860 - Posted: 17 Jun 2019, 9:12:15 UTC
Last modified: 17 Jun 2019, 9:29:28 UTC

Keithsplace could you try this fix. As root add file
/lib/udev/rules.d/01-boinc-gpu-plugged.rules

with content
ACTION=="add", SUBSYSTEM=="drm", RUN+=systemctl --no-block restart boinc-client.service

then run
# udevadm control --reload-rules

and reboot.
Can you still experience the problem? Thank you

P.S. This is just a workaround because a final patch will be implemented by using libudev rather than udev rules.
ID: 91860 · Report as offensive

Message boards : GPUs : Is there a way in Linux Mint 19.1 to delay boinc start at boot?

Copyright © 2019 University of California. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.