近日在做视觉相关的开发学习时,需要用到jetson去开机自启动一个shell脚本,并运行py程序。但是找遍全网csdn也没有找到正确的设置方法。经过一番学习与查找,发现setup application里的设置是有问题的,特记录下来。
设置方法
首先创建一个脚本文件,用于运行里面的程序或者py脚本。最好放在桌面,放在其他位置也行,就是在setup application里设置启动程序指令会需要带上绝对路径。
touch /home/jetson/xxx.sh
脚本里可以放字符打印测试或者其他脚本程序。创建完文件后需要赋予脚本文件可执行的属性。
sudo chmod 777 xxx.sh
查看文件属性
ls -l xxx.sh
查看整个文件夹里的属性
ls -l
之后打开搜索框搜索setup application
点击add,name:Start,command如下
gnome-terminal --command "bash xxx.sh"
之前查的很多博主都是用的下面这条指令
gnome-terminal /home/jetson/xxx.sh
我试了好几次都不行,terminal一直会闪退,用ps查看进程都没有shell在运行。完成设置后,重新启动,查看脚本运行情况
sudo reboot
出现的问题及解决办法
failed to execute child process(permission denied)
这是由于文件属性的问题,需要修改为可运行属性
sudo chmod +x xxx.sh
xxx.sh:找不到文件
这是由于文件的绝对路径的错误,需要区分的是绝对路径和相对路径。我们一般用的是相对路径如
~/project/tensorrt_demos/yolo_camera.sh
而绝对路径是
/home/jetson/tensorrt_demos/yolo_camera.sh
这是需要区分的。
END