Demonizing an action server

I am having a problem understanding what does demonizing an action server mean? I am at the action client section to echo goal, result and feedback topic (rostopic echo /ardrone_action_server/goal) and then run a launch with an executable client.py file which allows the drone to move as the action is called.
The problem is that my executable file wont run without a server but I have no other window that allows me to run the server package. What do I do?

Hi @mamojiz97

Thereā€™s something questions for you

  • What course are you developing?
  • You only have 4 terminals, so why not check each server parameter one by one?

Until I know, thatā€™s the terminal limit and you canā€™t add more

Hi @mamojiz97 ,

I see that you are working on ROS Basics in 5 Days course, although not sure if Python or C++ version.

**Daemonizing** (spelled with an ā€œaā€) is the act of sending a process to the background in computer programming.
So, speaking specifically to ROS, you press ā€œCtrl+Zā€ to send a process running in a terminal to the ā€œbackgroundā€. Once you do that, you will be able to use the (current) terminal again for running another process.
Once you are done with the current command, you can bring back the background task to the ā€œforegroundā€ by calling the bg command.
In some cases you might not be able to bring it to the foreground. In that case you can run the command ps faux to see the list of all running jobs and get the pid (process id) of the job and then use the command kill -9 <pid>.
If you know the process name you can also do pidof <name_of_process> to get the process name and then do kill -9 <pid>. The -9 is an alias for -SIGKILL.

I remember doing this chapter when I did the course.
So this is what you do on the terminals (I guess, I am not exactly sure):
Webshell 1:
Launch the action server and daemonize it by pressing Ctrl+Z.
Then launch the action client (I believe) (make sure you have called the respective commands on webshell 2, 3, 4 before doing this step)
Webshell 2:
rostopic echo /ardrone_as/goal
Webshell 3:
rostopic echo /ardrone_as/feedback
Webshell 4:
rostopic echo /ardrone_as/result

When done, go back to Webshell 1, close the current client and close the daemonized (background) task.

This same explanation is clearly written on the course notes also. Just scroll up and down a little bit to find it!

Hope this explanation helps.

Regards,
Girish

Thank you @girishkumar.kannan .
It did slip my mind about sending a process to background.

Hi @Voltedge
I was working on ROS Basics in 5 days. I figured out the solution. Thank you for your response

Minor rectification as above statement might be confusing to firstime users:

  • ctrl+z will send your process to the background, but it will be in the ā€˜stoppedā€™ state,
  • Calling the bg command will unpause the process, while keeping it in the background (i.e. you can use the terminal for other things),
  • Calling the fg command brings back the process to the foreground.

Re,
Johan

2 Likes