Startup roscore


#1

I followed the tutorials and have the image working nicely with ros over ssh.
However, runs roscore on bootup and I cannot find where that is being called. I would like that to not occur because some code I run needs to not have roscore running.

I did disable the startup code for Magni, since I am running with my own hardware, but it seems this one gets by.

Thanks for making such a terrific image and software packages available.


#2

There is a separate service for roscore.

sudo systemctl stop roscore.service

Rohan


#3

Thanks for the quick reply. Can I disable the roscore startup at boot with this?

sudo systemctl disable roscore.service

Is there anything else that runs at startup by default?


#4

Yes you can do that.

The only other non-standard running by default is pifi, our headless network management tool.

Rohan


#5

That is very helpful. Thanks for such fast feedback


#6

Follow-up question: I’ve 'disable’d roscore startup, as described here. But where does ‘roslaunch’ get kicked off to start all the nodes? Is roslaunch trying – and failing (because ‘master’ isn’t running)? Or does disabling the roscore startup also magically disable all the roslaunch requests.


#7

roslaunch will start a roscore instance if one is not already running, so you do not need to use roscore if you use roslaunch. If roscore is already running, then roslaunch proceeds normally without creating an additional instance of roscore. If you disable the automatic startup sequence, you may need to roslaunch the launch files yourself.


#8

There is a roslaunch is run in magni-base.service

You can disable it individually with sudo systemctl disable magni-base.service

I believe the systemd configuration is such that if you disable the roscore service, it also stops the magni-base service from running.

If you must run code before roscore, you can add Before=roscore.service to the systemd service file for that code.

Rohan