在 Beaglebone 上创建服务时无法指定目录

在 Beaglebone 上创建服务时无法指定目录

我不知道在哪里发布这个问题,因为它一半是编程问题,一半是 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

相关内容