我是 LINUX 操作系统的初学者,我的问题是下一个:
我有一个使用 OpenCV 和另一个库的 C++ 源代码编译的 bin,它在屏幕上显示从 USB 相机提供的图像。我的代码工作正常,下一步是每次我的板子上电时执行这个 bin 文件。我做了一些研究,发现可以帮助我的可靠方法是创建我自己的服务,该服务可以使用 systemctl 启用。我试过但没有成功,但我不确定我的服务文件是否配置正确。另外,我尝试使用启动应用程序,再次失败。PS:我的主板:Nvidia Jetson Tx2,我的操作系统:Ubuntu 18.04 LTS。
我正在等待任何建议,并感谢您做出回应。谢谢!
编辑:我的服务文件配置:
[Unit]
Description=Script that will execute my bin
[Service]
ExecStart=/home/nvidia/Desktop/daemonScripts/daemonVDM.sh start
[Install]
WantedBy=multi-user.target
这daemonVDM.sh
#!usr/bin/bash
path_vdm_bin="/home/nvidia/Desktop/running"
cd $path_vdm_bin
./vdm --camera-sources 1
输出systemctl status myscript
myscript.service: Main process exited, code=exited, status=203/EXEC
myscript.service: Failed with result 'exit-code'
我的 shell daemonVDM.sh 工作正常
我执行了以下命令:
sudo chmod 777 myscript.service
systemctl start myscript
systemctl enable myscript
这部分是错误的
请试试
实际上让我们进一步简化它:
现在,该
vdm
应用程序将仅在脚本能够进入目标目录时运行,否则将退出。start
是不必要的,尽管它不会造成伤害。您可以简单地删除它。您的 bash 脚本根本不处理任何命令行参数。我找到了解决方案。这是服务文件的配置: