A mistake in Exercise 8.8 tutorial?

Read the whole exercise prior to executing it, because you have to get properly set up prior to the start of executing anything.

Demonize the action server node and echo the goal topic. Press [CTRL]+[C] to kill the ardrone_as action_server.launch if you had it still running.

Execute in Shell #1

roslaunch ardrone_as action_server.launch

To kill it when finished, use the command: rosnode kill /ardrone_as

Hi there,
I think the server should be keeping running (in shell#1) and then we can echo these messages and launch the client in other shells …I have no idea about why we need to kill the server and kill the node. Could you please explain or correct the tutorial? What do you mean by saying the following:

Press [CTRL]+[C] to kill the ardrone_as action_server.launch if you had it still running.

To kill it when finished, use the command: rosnode kill /ardrone_as

In exercise 8.10,

If you had it demonized, use the command: rosnode kill /ardrone_as

What is the meaning of demonized?

Thanks for calling it out. I agree that we could make it clearer.

Used loosely, to daemonize (not demonize) means to run a process in the background. E.g. in the command below, the roslaunch command is sent to the background so the same web shell can be used to run other commands (because of the & symbol). Without that symbol, you would need to use another terminal.

roslaunch package launch.launch &

A daemonized command cannot be stopped by Crtl+C. We would need kill or rosnode kill where applicable. So, there seems to be some mixup there. We’ll take a look.

1 Like

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.

Hi bayodesegun,

Thank you for your answer. :blush:

So the tutorial basically wanted to say the following?
to run the launch backend by using roslaunch package launch_file.launch & and then use rosnode kill /node_name
or
run the launch file directly and then control +C

If so, I am still a bit confused. Why do we need to kill the process/node many times?

PS: I just noticed that the post has been closed, shall we open it again?

These are two ways of doing the same thing. Any one of them will do the job, depending on whichever is more convenient and appropriate for the situation.

Because you cannot run more than one instance of it at any time. When we need to explain rosnode kill, for example, you need to stop the instance you have been running before to demonstrate it.

Thank you for explaining it in detail!

As we have been running the program directly since the beginning of the course, we want to use control+C to stop it and then try to run it backend and use rosnode kill. I feel like we only need rosnode kill once. I still feel the descriptions is a bit messed up…