如何正确关闭Chromote会话以清除残留的Chrome进程?
Chromote会话关闭与Chrome进程清理问题
问题背景
- 初始状态:通过Linux命令
top查看,系统中无名为chrome的进程 - 创建会话后:执行以下R代码创建Chromote会话,系统中出现8个chrome进程:
library("chromote") b <- ChromoteSession$new()
- 关闭会话异常:执行
b$close()关闭会话窗口/标签页后,8个chrome进程仍未消失;尝试用b$parent$close()关闭浏览器进程时,触发错误:
# Error in self$send_command(msg, callback = callback_, error = error_, : # Chromote object is closed.
尝试方案及疑问
使用@margusl提供的方案,代码如下:
b <- ChromoteSession$new() # 关闭会话 p <- b$parent p_browser <- b$parent$get_browser() p_browser$close()
该方法可以彻底清除所有chrome进程,但执行后会出现如下错误信息,是否需要关注?
[1] TRUE [2023-01-22 18:33:15] [error] handle_read_frame error: websocketpp.transport:7 (End of File)
解答
这个方案是正确的Chromote会话清理方式,能彻底关闭所有关联的Chrome进程。至于出现的websocketpp.transport:7 (End of File)错误,属于正常现象:调用p_browser$close()后,Chromote与Chrome之间的WebSocket连接被强制断开,后续程序尝试读取连接数据时,就会触发“文件结束”的错误提示。该错误不会影响进程清理的效果,也不会留下残留问题,完全无需关注。
内容的提问来源于stack exchange,提问作者ixodid
相关产品推荐
相关产品推荐

