event_handler=launch.event_handlers.OnProcessExit
时间: 2024-12-20 17:17:09 浏览: 3
`launch.event_handlers.OnProcessExit`是Launch描述符语言(LDS,Launch Description Specification)中的一个事件处理器。在Ros2 Launch库中,它用于处理进程退出事件。当指定的一个或多进程完成其生命周期(例如,程序终止或遇到错误),`OnProcessExit`事件处理器会触发相应的回调函数,允许开发者定义在进程结束后的清理操作或是进一步的监控行为。
在`launch.LaunchDescription`实例中使用`OnProcessExit`,你可以关联一个特定的动作(action)到一个进程上,当该进程结束时,这个动作会被执行。这可以用于执行资源清理、数据收集或者其他依赖于其他进程结束的任务。
例如:
```python
from launch import LaunchDescription
from launch_ros.actions import Node
from launch.event_handlers import OnProcessExit
def generate_launch_description():
node = Node(...)
# 创建一个OnProcessExit事件处理器,当node进程退出时执行handle_node_exit函数
on_process_exit = OnProcessExit(
target_action=node,
on_shutdown=[lambda proc_info: print(f"Node {proc_info.node_name} has exited.")]
)
return LaunchDescription([node, on_process_exit])
```
阅读全文