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
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