我不知道在哪里发布这个问题,因为它一半是编程问题,一半是 Linux 问题,所以请原谅我。
我正在使用 Beaglebone Black 开发一个项目,我需要在启动后自动执行一个非常复杂的 python 脚本,所以我遵循了本教程:
(https://stackoverflow.com/questions/28854705/executing-a-script-on-startup-using-beaglebone-black)
它有效,但脚本是在目录中执行的/
,而不是在正确的目录中执行的,/root/pyfingerprint/examples/
所以当程序尝试执行examples
目录中的内容时,它找不到它们。
我尝试为需要它的每一行代码添加完整路径,它适用于项目的某些部分,但对于 cv2 和其他库来说还不够。
我试图解决这个问题,只需os.system("cd /root/pyfingerprint/examples/")
在 python 脚本的开头添加,但是当程序在启动时执行时,它说当前目录仍然是/
该程序在手动执行时可以完美运行,但在启动时则无法运行。
有没有办法设置服务的工作目录,使其自动在正确的目录中执行?
答案1
正如 Fruit 建议的,解决方案是添加cd [dir]
.sh 脚本来启动程序。就我而言,脚本是:
#!/bin/bash
cd /root/pyfingerprint/examples/
python3 main.py