Properly autostart Kraken on boot?

I have a bare-metal Ubuntu ×64 installation, and I wanted to fire up the KrakenDOA on boot but ran into issues.

I’ve swapped line 3 in ./kraken_doa_start.sh for the source version, then created a simple systemd service unit

[Unit]
Description=Fire up KrakenDOA after boot
After=network.target network-online.target
StartLimitIntervalSec=1
StartLimitBurst=5
StartLimitIntervalSec=10

[Service]
Type=simple
User=root
Group=root
Restart=always
RestartSec=1
WorkingDirectory=/home/%redacted%/krakensdr_doa
ExecStart=/bin/bash /home/%redacted%/krakensdr_doa/kraken_doa_start.sh

[Install]
WantedBy=default.target

By checking the processes and the system load average, I see that the DAQ chain is working, but both the 8080 and 8081 port connections are refused, so the web part is not running. ui.log is blank, and I’m having difficulty tracing the problem further.

How did you solve the unattended startup? :pray:

It may be an issue with starting directories, or the target.

On the Pi the service looks like:


[Unit]
Description=Start KrakenSDR Code
After=multi-user.target

[Service]
Type=forking
Workingdirectory=/home/krakenrf/krakensdr_doa
ExecStart=/usr/bin/sh /home/krakenrf/start.sh

[Install]
WantedBy=multi-user.target
nano start.sh
#!/bin/bash

# This script is run on startup by a systemd service at /lib/systemd/system/krakensdr.service
cd /home/krakenrf/krakensdr_doa
./kraken_doa_start.sh

kraken_doa_start note:

We must use “source /home/krakenrf/miniforge3/etc/profile.d/conda.sh” instead of eval to activate conda. Also don’t forget #!/bin/bash

(Make sure you change your home directory /home/krakenrf/ as required for your own system.

1 Like

The reference PI script did the trick, thanks. Not doing a cd was the issue, thank you, Carl!

Rather than starting a new thread, I thought I might append this one from November 2022. I know how much people just love that, but it is also nice to find everything on one topic too.

Details:
Odroid N2+ Ubuntu Mate 22.04LTS

New install. Installed through script. Ran when manually started (best results I have had with this).

Started to make it a systemd service and can not get it to run all kinds of failures.

Contents of “kraken_doa_start.sh”

#!/bin/bash

source /home/odroid/miniforge3/etc/profile.d/conda.sh  <- required for systemd auto startup (comment out eval and use source instead)
#eval "$(conda shell.bash hook)"
conda activate kraken

# Clear pycache before starting if the -c flag is given
while getopts c flag
do
    case "${flag}" in
        c) sudo py3clean . ;;
    esac
done

./kraken_doa_stop.sh
#sleep 2

cd heimdall_daq_fw/Firmware
#sudo ./daq_synthetic_start.sh
sudo env "PATH=$PATH" ./daq_start_sm.sh
sleep 1
cd ../../krakensdr_doa
sudo env "PATH=$PATH" ./gui_run.sh

Contents of “start.sh” located at /home/odroid

#!/bin/bash

# This script is run on startup by a systemd service at /lib/systemd/system/krakensdr.service
cd /home/odroid/krakensdr_doa
./kraken_doa_start.sh

Contents of krakensdr.service located at /lib/systemd/system

[Unit]
Description=KrakenSDR DOA Startup
#After=multi-user.target
After=network.target network-online.target
StartLimitIntervalSec=1
StartLimitBurst=5
StartLimitIntervalSec=10

[Service]
Type=simple
User=root
Group=root
Restart=always
RestartSec=5
Workingdirectory=/home/odroid/krakensdr_doa
#ExecStart=/bin/sh /home/odroid/krakensdr_doa/kraken_doa_start.sh
#User=odroid
ExecStart=/usr/bin/sh /home/odroid/krakensdr_doa/kraken_doa_start.sh
Restart=always

[Install]
#WantedBy=multi-user.target
WantedBy=default.target

odroid@krakensdr1:/lib/systemd/system$ journalctl -fn 100 -u krakensdr
Mar 02 18:46:58 krakensdr1 systemd[1]: Started KrakenSDR DOA Startup.
Mar 02 18:46:58 krakensdr1 sh[11554]: /home/odroid/krakensdr_doa/kraken_doa_start.sh: 3: Syntax error: “(” unexpected
Mar 02 18:46:58 krakensdr1 systemd[1]: krakensdr.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Mar 02 18:46:58 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘exit-code’.
Mar 02 18:47:03 krakensdr1 systemd[1]: krakensdr.service: Scheduled restart job, restart counter is at 471.
Mar 02 18:47:03 krakensdr1 systemd[1]: Stopped KrakenSDR DOA Startup.
Mar 02 18:47:03 krakensdr1 systemd[1]: Started KrakenSDR DOA Startup.
Mar 02 18:47:03 krakensdr1 sh[11563]: /home/odroid/krakensdr_doa/kraken_doa_start.sh: 3: Syntax error: “(” unexpected
Mar 02 18:47:03 krakensdr1 systemd[1]: krakensdr.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Mar 02 18:47:03 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘exit-code’.
Mar 02 18:47:08 krakensdr1 systemd[1]: krakensdr.service: Scheduled restart job, restart counter is at 472.
Mar 02 18:47:08 krakensdr1 systemd[1]: Stopped KrakenSDR DOA Startup.
Mar 02 18:47:08 krakensdr1 systemd[1]: Started KrakenSDR DOA Startup.
Mar 02 18:47:08 krakensdr1 sh[11575]: /home/odroid/krakensdr_doa/kraken_doa_start.sh: 3: Syntax error: “(” unexpected
Mar 02 18:47:08 krakensdr1 systemd[1]: krakensdr.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Mar 02 18:47:08 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘exit-code’.

I would appreciate any insight into how I can get this working properly. I’ve done a lot of online searching, but I have a feeling that this is mostly an issue of not giving a proper location. For instance start.sh I had to create the file based on what I could find online. I don’t know that is the proper location, but for other software it appeared correct.

Thanks!!! I really wanted to get this running today for a FoxHunt. :frowning:

1 Like

In your kraken_doa_start.sh, in line 3, you need to remove all characters after the .sh symbols (pseudo-arrow and comment)

Well that changed things a bit. Still won’t run though.

Here is latest output:

odroid@krakensdr1:~$ journalctl -fn 100 -u krakensdr
Mar 02 22:41:45 krakensdr1 sudo[37065]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:41:46 krakensdr1 sh[37056]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 22: cd: can’t cd to …/…/krakensdr_doa
Mar 02 22:41:46 krakensdr1 sudo[37070]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./gui_run.sh
Mar 02 22:41:46 krakensdr1 sudo[37070]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:41:46 krakensdr1 sh[37071]: env: ‘./gui_run.sh’: No such file or direc tory
Mar 02 22:41:46 krakensdr1 sudo[37070]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:41:46 krakensdr1 systemd[1]: krakensdr.service: Main process exited, c ode=exited, status=127/n/a
Mar 02 22:41:46 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘ex it-code’.
Mar 02 22:41:51 krakensdr1 systemd[1]: krakensdr.service: Scheduled restart job, restart counter is at 3152.
Mar 02 22:41:51 krakensdr1 systemd[1]: Stopped KrakenSDR DOA Startup.
Mar 02 22:41:51 krakensdr1 sh[37082]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 3: source: not found
Mar 02 22:41:51 krakensdr1 sh[37082]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 5: conda: not found
Mar 02 22:41:51 krakensdr1 sh[37083]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 15: ./kraken_doa_stop.sh: not found
Mar 02 22:41:51 krakensdr1 sh[37082]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 18: cd: can’t cd to heimdall_daq_fw/Firmware
Mar 02 22:41:51 krakensdr1 systemd[1]: Started KrakenSDR DOA Startup.
Mar 02 22:41:51 krakensdr1 sudo[37084]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./daq_start_sm.sh
Mar 02 22:41:51 krakensdr1 sudo[37084]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:41:51 krakensdr1 sh[37087]: env: ‘./daq_start_sm.sh’: No such file or directory
Mar 02 22:41:51 krakensdr1 sudo[37084]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:41:52 krakensdr1 sh[37082]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 22: cd: can’t cd to …/…/krakensdr_doa
Mar 02 22:41:52 krakensdr1 sudo[37089]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./gui_run.sh
Mar 02 22:41:52 krakensdr1 sudo[37089]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:41:52 krakensdr1 sh[37090]: env: ‘./gui_run.sh’: No such file or direc tory
Mar 02 22:41:52 krakensdr1 sudo[37089]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:41:52 krakensdr1 systemd[1]: krakensdr.service: Main process exited, c ode=exited, status=127/n/a
Mar 02 22:41:52 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘ex it-code’.
Mar 02 22:41:58 krakensdr1 systemd[1]: krakensdr.service: Scheduled restart job, restart counter is at 3153.
Mar 02 22:41:58 krakensdr1 systemd[1]: Stopped KrakenSDR DOA Startup.
Mar 02 22:41:58 krakensdr1 systemd[1]: Started KrakenSDR DOA Startup.
Mar 02 22:41:58 krakensdr1 sh[37099]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 3: source: not found
Mar 02 22:41:58 krakensdr1 sh[37099]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 5: conda: not found
Mar 02 22:41:58 krakensdr1 sh[37100]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 15: ./kraken_doa_stop.sh: not found
Mar 02 22:41:58 krakensdr1 sh[37099]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 18: cd: can’t cd to heimdall_daq_fw/Firmware
Mar 02 22:41:58 krakensdr1 sudo[37101]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./daq_start_sm.sh
Mar 02 22:41:58 krakensdr1 sudo[37101]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:41:58 krakensdr1 sh[37102]: env: ‘./daq_start_sm.sh’: No such file or directory
Mar 02 22:41:58 krakensdr1 sudo[37101]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:41:59 krakensdr1 sh[37099]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 22: cd: can’t cd to …/…/krakensdr_doa
Mar 02 22:41:59 krakensdr1 sudo[37104]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./gui_run.sh
Mar 02 22:41:59 krakensdr1 sudo[37104]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:41:59 krakensdr1 sh[37105]: env: ‘./gui_run.sh’: No such file or direc tory
Mar 02 22:41:59 krakensdr1 sudo[37104]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:41:59 krakensdr1 systemd[1]: krakensdr.service: Main process exited, c ode=exited, status=127/n/a
Mar 02 22:41:59 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘ex it-code’.
Mar 02 22:42:04 krakensdr1 systemd[1]: krakensdr.service: Scheduled restart job, restart counter is at 3154.
Mar 02 22:42:04 krakensdr1 systemd[1]: Stopped KrakenSDR DOA Startup.
Mar 02 22:42:04 krakensdr1 sh[37109]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 3: source: not found
Mar 02 22:42:04 krakensdr1 sh[37109]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 5: conda: not found
Mar 02 22:42:04 krakensdr1 sh[37112]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 15: ./kraken_doa_stop.sh: not found
Mar 02 22:42:04 krakensdr1 systemd[1]: Started KrakenSDR DOA Startup.
Mar 02 22:42:04 krakensdr1 sh[37109]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 18: cd: can’t cd to heimdall_daq_fw/Firmware
Mar 02 22:42:04 krakensdr1 sudo[37120]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./daq_start_sm.sh
Mar 02 22:42:04 krakensdr1 sudo[37120]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:42:04 krakensdr1 sh[37121]: env: ‘./daq_start_sm.sh’: No such file or directory
Mar 02 22:42:04 krakensdr1 sudo[37120]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:42:05 krakensdr1 sh[37109]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 22: cd: can’t cd to …/…/krakensdr_doa
Mar 02 22:42:05 krakensdr1 sudo[37123]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./gui_run.sh
Mar 02 22:42:05 krakensdr1 sudo[37123]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:42:05 krakensdr1 sh[37124]: env: ‘./gui_run.sh’: No such file or direc tory
Mar 02 22:42:05 krakensdr1 sudo[37123]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:42:05 krakensdr1 systemd[1]: krakensdr.service: Main process exited, c ode=exited, status=127/n/a
Mar 02 22:42:05 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘ex it-code’.
Mar 02 22:42:10 krakensdr1 systemd[1]: krakensdr.service: Scheduled restart job, restart counter is at 3155.
Mar 02 22:42:10 krakensdr1 systemd[1]: Stopped KrakenSDR DOA Startup.
Mar 02 22:42:10 krakensdr1 systemd[1]: Started KrakenSDR DOA Startup.
Mar 02 22:42:10 krakensdr1 sh[37125]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 3: source: not found
Mar 02 22:42:10 krakensdr1 sh[37125]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 5: conda: not found
Mar 02 22:42:10 krakensdr1 sh[37130]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 15: ./kraken_doa_stop.sh: not found
Mar 02 22:42:10 krakensdr1 sh[37125]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 18: cd: can’t cd to heimdall_daq_fw/Firmware
Mar 02 22:42:10 krakensdr1 sudo[37131]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./daq_start_sm.sh
Mar 02 22:42:10 krakensdr1 sudo[37131]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:42:10 krakensdr1 sh[37138]: env: ‘./daq_start_sm.sh’: No such file or directory
Mar 02 22:42:10 krakensdr1 sudo[37131]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:42:11 krakensdr1 sh[37125]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 22: cd: can’t cd to …/…/krakensdr_doa
Mar 02 22:42:11 krakensdr1 sudo[37140]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./gui_run.sh
Mar 02 22:42:11 krakensdr1 sudo[37140]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:42:11 krakensdr1 sh[37141]: env: ‘./gui_run.sh’: No such file or direc tory
Mar 02 22:42:11 krakensdr1 sudo[37140]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:42:11 krakensdr1 systemd[1]: krakensdr.service: Main process exited, c ode=exited, status=127/n/a
Mar 02 22:42:11 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘ex it-code’.
Mar 02 22:42:16 krakensdr1 systemd[1]: krakensdr.service: Scheduled restart job, restart counter is at 3156.
Mar 02 22:42:16 krakensdr1 systemd[1]: Stopped KrakenSDR DOA Startup.
Mar 02 22:42:16 krakensdr1 systemd[1]: Started KrakenSDR DOA Startup.
Mar 02 22:42:16 krakensdr1 sh[37150]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 3: source: not found
Mar 02 22:42:16 krakensdr1 sh[37150]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 5: conda: not found
Mar 02 22:42:16 krakensdr1 sh[37151]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 15: ./kraken_doa_stop.sh: not found
Mar 02 22:42:16 krakensdr1 sh[37150]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 18: cd: can’t cd to heimdall_daq_fw/Firmware
Mar 02 22:42:16 krakensdr1 sudo[37152]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./daq_start_sm.sh
Mar 02 22:42:16 krakensdr1 sudo[37152]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:42:16 krakensdr1 sh[37153]: env: ‘./daq_start_sm.sh’: No such file or directory
Mar 02 22:42:16 krakensdr1 sudo[37152]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:42:17 krakensdr1 sh[37150]: /home/odroid/krakensdr_doa/kraken_doa_star t.sh: 22: cd: can’t cd to …/…/krakensdr_doa
Mar 02 22:42:17 krakensdr1 sudo[37156]: root : PWD=/ ; USER=root ; COMMAND=/ usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s nap/bin ./gui_run.sh
Mar 02 22:42:17 krakensdr1 sudo[37156]: pam_unix(sudo:session): session opened f or user root(uid=0) by (uid=0)
Mar 02 22:42:17 krakensdr1 sh[37159]: env: ‘./gui_run.sh’: No such file or direc tory
Mar 02 22:42:17 krakensdr1 sudo[37156]: pam_unix(sudo:session): session closed f or user root
Mar 02 22:42:18 krakensdr1 systemd[1]: Stopping KrakenSDR DOA Startup…
Mar 02 22:42:18 krakensdr1 systemd[1]: krakensdr.service: Main process exited, c ode=exited, status=127/n/a
Mar 02 22:42:18 krakensdr1 systemd[1]: krakensdr.service: Failed with result ‘ex it-code’.
Mar 02 22:42:18 krakensdr1 systemd[1]: Stopped KrakenSDR DOA Startup.

There’s a problem with paths, judging by can’t cd to. I also see a funky space in the kraken_doa_star t.sh, the fourth symbol from the end.

Well apparently I edited the wrong file somewhere. I am now reloading the OS from scratch and starting over. One thing I think I am going to do this time is create a user krakenrf with the default krakensdr password. Perhaps it will make my life a little easier and install from that location.

I am sure most of this is my lack of understanding of the Linux OS. I used to think I was good at this back in 1998. HA!

I had to edit the kraken_doa_start.sh with this exact thing on Ubuntu 22.04 to get it to run as a service, but it did work otherwise.

The only problem I wound up having was with conda (anaconda), and I also had to run the install script in my home directory to get it to work.

I just wanted to see if I could get it to work, even though I’m using the RPi 4 (overclocked with a massive heat-sink). I can use the Ubuntu laptop as an alternate now.

If anyone needs my service file or how I changed things to get it to run, let me know.

The biggest obstacle was conda (anaconda). Make sure that is installed properly first in your profile before trying to install the Kraken software, or you will have problems.

1 Like

Please send me the file or upload.

I am still working through issues on my setups. I got the software to auto-start but having a heck of a time getting it to talk to the Kraken reliably. Yes my power supply is big enough, 5A capable 90W on the USB port.