A project entry point for the Extension Manager [Wiki]

The information about the Roon Extension Manager is split between different threads because they discuss different parts of the project. Although it is useful to keep topics separated it also makes information a bit scattered.

To keep information up to date I always try to update the first post with current information, but on this forum this is a bit difficult because after a few months I can no longer edit the first post :slightly_frowning_face:

To solve the above problems I now created a project entry point in the form of a project Wiki:

https://github.com/TheAppgineer/roon-extension-manager/wiki

I made a start by adding some basic information and will add more detail to it as the project progresses. The different pages contain links to the applicable topics on this forum, in case things need discussion.

In case something specific needs more attention, please let me know.

I updated the Wiki with a description on how to setup a systemd service for the Extension Manager.

https://github.com/TheAppgineer/roon-extension-manager/wiki/Installation#linux

Please get back to me if things are unclear.

Cant get this to work. I get this error

Failed to start roon-extension-manager.service: Unit roon-extension-manager.service failed to load: Invalid argument. See system logs and ‘systemctl status roon-extension-manager.service’ for details.

I check the service status and I get this

Sep 04 21:11:19 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:7] Assignment outside of section. Ignoring.
Sep 04 21:11:19 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:8] Assignment outside of section. Ignoring.
Sep 04 21:11:19 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:9] Assignment outside of section. Ignoring.
Sep 04 21:11:19 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:10] Assignment outside of section. Ignoring.
Sep 04 21:11:19 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:11] Assignment outside of section. Ignoring.
Sep 04 21:11:19 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:12] Assignment outside of section. Ignoring.
Sep 04 21:11:19 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:13] Assignment outside of section. Ignoring.
Warning: roon-extension-manager.service changed on disk. Run ‘systemctl daemon-reload’ to reload units.

Oops, I forgot the daemon-reload step. Description is updated.

Let me know if it solves the problem.

Nope

Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:625] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:626] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:627] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:628] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:629] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:630] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:631] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:634] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manager.service:635] Assignment outside of section. Ignoring.
Sep 04 22:39:40 vortexbox systemd[1]: roon-extension-manager.service: Service lacks both ExecStart= and ExecStop= setting. Refusing.

What does your modified service file look like?
Is the ExecStart= field still there or is it accidentally removed while updated the path?

Which distribution, and which version of it, do you use?

I have seen this issue before when the systemd service file used DOS carriage returns. You may want to run dos2unix on the systemd service file before doing the systemd daemon-reload…

Command would be:
dos2unix /etc/systemd/system/roon-extension-manager.service

1 Like

Thanks for the suggestion Mike!

@CrystalGipsy, can you give this a try?

Same again.

Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:625] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:626] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:627] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:628] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:629] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:630] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:631] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:634] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: [/etc/systemd/system/roon-extension-manage r.service:635] Assignment outside of section. Ignoring.
Sep 06 20:47:13 vortexbox systemd[1]: roon-extension-manager.service: Service la cks both ExecStart= and ExecStop= setting. Refusing.

I wonder if I have edited the file correctly? For the record I am running Roon core on Vortexbox 2.4 Os which is based on Fedora 23.

This is what I changed is this correct?

User=root WorkingDirectory=/root/.RoonExtensions/lib ExecStart=/root/.RoonExtensions/lib/roon-extension-manager.sh

Looks OK to me.

What encoding does the editor use, is it set to UTF-8?
Your case looks similar to this one.

I previously installed the service on my NUC, running Arch Linux. I now also installed it on my PC that runs Fedora 24. I had to add the PATH variable to the service file in order to get it working, it should be placed in the [Service] section:

Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/node/bin"

The last part has to point to the bin directory of the Node.js installation directory.

I just cut and pasted those and it changed the case when doing this. I edited in Nano if I remember from when I did my own service t needed that entry to so I’ll add it in and see if it sorts it.

Sorry I have no idea where the service section is in your file. Any pointers would be helpful.

Add the line just below the ExecStart= line, it should be in the group of variables below the [Service] line. The total then becomes something like:

[Unit]
Description=Roon Extension Manager
After=network.target

[Service]
User=root
Restart=always
WorkingDirectory=/root/.RoonExtensions/lib
ExecStart=/root/.RoonExtensions/lib/roon-extension-manager.sh
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/node/bin"

[Install]
WantedBy=multi-user.target

Maybe the copying from the webpage causes the issue. Please download the zip file and extract the service file from the linux\ directory. Then make the required modifications on this file.

Still struggling. Sorry Im not that experienced with linux. When you say the last part of the environment section needs to point to the node.js installation directory this is where I am lost. What node.js are you referring to?

Type “which node” without the quotes. That will give you the full path to the Node JS executable.

To get the currently configured full path for a user, type “echo $PATH”. The path listed in Jan’s example file on the “Environment” line is a pretty standard one and should work.

And you really, REALLY should not be running node as root. It runs perfectly fine and is much safer as a standard, non-privileged user.

@Jan_Koudijs - On your installation page for the roon-extension-manager, one of the examples has a check to see which version of node you are running. In the output, it shows v5.10.1.
(https://github.com/TheAppgineer/roon-extension-manager/blob/master/README.md)

My extension requires version 6.x or higher because of some of the array types that are used. It may be confusing if the installation steps show v5.10.1 when there may be problems with some of the extensions with that version…

Sorted at last. For the record mike i have to run it as root as vortexbox runs as root from the outset. I never botheres to create another user as its too much hassle.

Can you share what the issue was? It might help others.