有线示教器界面卡死之后如何处理
有线示教器界面无响应,无法操作之后。首先需要观察右上角时间是否还正常更新。右上角时间正常更新,一般指示为焦点冲突问题;右上角时间若也是卡住完全不动,则是真的进程卡死或系统卡死。
右上角时间正常跳动
这种情况的核心是占焦点弹窗被遮挡了,导致无法响应操作。需接鼠标键盘,或使用远程桌面连接,按下alt+tab键尝试切换页面。尽量尝试把被遮挡的页面激活出来解决掉,若是成功的唤出占焦弹窗并点击解决掉,则可以恢复正常。若未能成功解决占焦弹窗被遮挡的情况,则只能开终端输入命令重启示教器服务 systemctl restart aubo_scope.service
这种情况的根源目前需在代码层面优化解决。遇到这种卡死后,无论解决与否,都需要上传日志、提issue。
右上角时间卡住不动
这种情况的根源大多是系统CPU占用极高、内存占用极高、进程内死锁等原因。
如果是暂时的、一过性质的、比如打开一个巨大的工程等情况这种现场环境下可稍事等待,如果弹出卡顿助手也可选择继续等待,等其后续自行缓解 恢复正常。
长期无法缓解的卡死,现场环境下基本只有重启。在卡顿助手中点击中止,或者进入后台输命令关停示教器。如若现场条件允许,从排查定位问题、彻底解决问题方面考虑,解决遇到的卡死情况。则有下述操作可参考:
top
指令,查看系统各进程资源占用。
top -Hp `pgrep aubo_scope`
指令,查看指定进程内各线程的资源占用。
tail -f /root/arcs_ws/log/aubo_scope.log
指令,动态查看 aubo_scope 的日志
kill -segv [pid]
指令,向指定pid进程发送一个segv信号,会引发示教器或控制器崩溃。
1.远程连接或接入鼠标键盘操作,开启终端先输入 top 指令,看系统整体资源占用如何。若系统整体CPU 内存等资源占用都不高,但示教器就是卡死无响应,这种基本推测为示教器进程内存在线程死锁。能进一步定位问题的手段就是记下示教器进程的 pid 号,然后用 kill -segv [pid]
命令制造示教器崩溃,这样产生的崩溃日志会记录卡顿时正执行到的位置,直接定位到代码层面的问题位置。日志与崩溃日志传给开发人员并提issue。
2.若显示示教器进程的CPU占用极高,说明CPU目前处于忙碌状态。指示示教器内部目前可能正在循环往复、不停的执行着什么流程。
输入top -Hp `pgrep aubo_scope`
指令,查看示教器内部具体哪个线程比较占用资源,然后截图留存;
输入tail -f /root/arcs_ws/log/aubo_scope.log
指令,查看示教器日志,是否存在刷屏现象,然后截图留存;
输入 kill -segv [pid]
命令制造示教器崩溃,生成指示问题位置的崩溃日志;
相关截图与日志有助于定位解决问题,提issue给开发人员。