使用DmAPService脚本启动dmap服务报错,报错信息:“failed to get ps!”

这篇博客介绍了在遇到DmAPService启动时报'failedtogetps!'错误时的排查步骤。问题源于ps命令权限不足,导致dmdba用户无法执行。解决方案是使用root用户将/usr/bin/ps命令权限修改为755,从而使dmdba用户具备执行权限,最终成功启动DmAPService。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

使用DmAPService脚本启动dmap服务报错,报错信息:“failed to get ps!”

排查解决

1、根据报错信息以及DmAPService服务脚本内容可以定位到报错发生的可能原因,可以直接在DmAPService脚本中查找报错信息"failed to get ps!"。原因可能为服务脚本需要使用操作系统ps命令去执行相关操作,但是未能成功获取到ps命令。导致未能成功获取到ps命令的可能原因是:
(1)ps命令不存在
(2)ps命令的路径与服务脚本中的路径不同
(3)dmdba用户无权限使用ps命令

2、检查操作系统ps命令
(1)可以使用命令whereis ps 查看ps的路径

[root@localhost ~]# whereis ps
ps: /usr/bin/ps

(2)根据上面查到的ps命令路径,检查DmAPService服务脚本中是否有包含该路径
DmAPService服务脚本会去判断操作系统下/usr/ucb/ps、/usr/bin/ps、/bin/ps是否存在,只要其中一个存在即可使用对应的ps命令
(3)检查ps命令的权限,普通用户是否有权限执行

[root@localhost ~]# ls -l /usr/bin/ps
-rwx------ 1 root root 137672  3月 15  2020 /usr/bin/ps
正常情况下,ps命令权限应为755,当前环境ps命令为700,所以普通用户没有ps命令执行权限。

(4)使用dmdba用户执行ps命令

[dmdba@localhost bin]$ ps -ef|grep dms
-bash: /usr/bin/ps: 权限不够                     -----提示权限不够

3、使用root用户修改ps命令权限为755

[root@localhost ~]# chmod 755 /usr/bin/ps
[root@localhost ~]# ls -l /usr/bin/ps
-rwxr-xr-x 1 root root 137672  3月 15  2020 /usr/bin/ps

4、dmdba用户执行ps命令以及DmAPService脚本

[dmdba@localhost bin]$ ps -ef|grep dmap
dmdba      74008   73545  0 18:19 pts/1    00:00:00 grep dmap
[dmdba@localhost bin]$ ./DmAPService start
Starting DmAPService:                                      [ OK ]
[dmdba@localhost bin]$ ps -ef|grep dmap
dmdba      74032       1  0 18:19 pts/1    00:00:00 /home/dmdba/dm46/bin/dmap
dmdba      74045   73545  0 18:19 pts/1    00:00:00 grep dmap
[dmdba@localhost bin]$

解决办法

原因:
由于操作系统ps命令权限为700,普通用户无执行权限,所以报错。

解决办法:
使用root用户修改操作系统ps命令权限为755。
chmod 755 /usr/bin/ps

### 如何在 Windows 系统中设置和使用深度相机 #### SDK 的安装 为了能够在 Windows 上使用深度相机,首先需要安装对应的软件开发套件 (SDK)[^1]。不同品牌的深度相机可能有不同的安装方式,因此建议仔细阅读官方文档中的说明。 #### 配置环境 完成 SDK 安装之后,需配置开发环境以便能够编写代码来控制相机。对于 Python 用户来说,通常可以通过 pip 或者 conda 来安装必要的库文件。如果使用 C++ 开发,则可以借助于 CMake 工具来进行项目构建[^3]。 #### 测试程序运行 当一切准备就绪后,可尝试执行厂商提供的示例测试程序验证设备功能是否正常。例如,在图漾 FS-820 型号的案例里提到通过 SimpleView_FetchFrame.exe 可查看到 RGB 图像以及相应的深度数据展示界面;而对于 ZED 相机而言,“ZED Explorer” 和 “ZED Depth Viewer” 是两个非常重要的工具用于初步确认硬件状态及其性能表现[^4]。 #### 编程接口调用 一旦基本的功能得到检验无误,就可以基于所选编程语言开始正式项目的编码工作了。下面给出一段简单的 Python 脚本作为例子演示如何获取并处理来自双目摄像头的数据: ```python import pyfim as fim # 假设这是某个特定品牌相机支持的模块名 def capture_frame(): cam = fim.Camera() if not cam.open(): raise Exception("Failed to connect camera.") frame = cam.get_next_frame() rgb_image = frame.color_data depth_map = frame.depth_data return rgb_image, depth_map if __name__ == "__main__": img, dmap = capture_frame() print(f"Captured image shape:{img.shape}, Depth map min-max values:[{dmap.min()}, {dmap.max()}]") ``` 上述代码片段展示了打开摄像装置、读取下一帧画面并将其中的颜色部分与深度信息分离出来的过程。注意实际应用时还需要考虑错误捕捉机制等问题以提高系统的健壮性。 #### 性能考量因素 值得注意的是,尽管大多数现代深度相机可以在各种光照条件下良好运作,但其测距精确度会受到目标物体距离的影响——越远的位置误差越大[^2]。所以在设计解决方案的时候应该考虑到这一点,并采取适当措施加以补偿或者规避潜在风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值