All ros2 topics have a status topic for monitoring them. To have a look launch an action server, then list the topics with hidden topics shown:
$ ros2 run examples_rclcpp_minimal_action_server action_server_member_functions
...
$ ros2 topic list --include-hidden-topics
/fibonacci/_action/feedback
/fibonacci/_action/status
/parameter_events
/rosout
Echo the _action/status
topic while sending a goal
$ ros2 topic echo /fibonacci/_action/status
status_list:
- goal_info:
goal_id:
uuid:
- 82
- 166
- 223
- 231
- 14
- 16
- 94
- 134
- 45
- 224
- 247
- 104
- 135
- 179
- 196
- 14
stamp:
sec: 1606145080
nanosec: 966343610
status: 2
---
status_list:
- goal_info:
goal_id:
uuid:
- 82
- 166
- 223
- 231
- 14
- 16
- 94
- 134
- 45
- 224
- 247
- 104
- 135
- 179
- 196
- 14
stamp:
sec: 1606145080
nanosec: 966343610
status: 4
---
...
$ ros2 run examples_rclcpp_minimal_action_client action_client_member_functions
Notice the first message status 2 is EXECUTING, and the second is status 4 SUCCEEDED. This server chose to execute the goal right away, but other servers may accept the goal, hold on to it for a bit, then execute it later.
See the ROS 2 action design doc for more info.