【问题标题】:Runnig a python script using systemd and service file on the jetson nano在 jetson nano 上使用 systemd 和服务文件运行 python 脚本
【发布时间】:2021-11-27 14:02:57
【问题描述】:

我正在尝试设置正确的参数以在 jetson nano 通电时运行 python 脚本。我面临的问题是服务文件不想识别使用 pip 安装的库。如果代码是从命令行编译的,它可以正常工作而不会遇到任何问题,但是在 systemd 支持下我会收到此错误: here the first image(上传://k2pWgcIRAB7N2OzLrascOEi1HrI.jpeg)

second image

服务文件如下图所示: service file

如果有人可以帮助我,我将非常感激。

【问题讨论】:

  • 你把包安装到哪里了? Systemd 默认以 root 身份运行可执行文件,因此请确保在以 root 身份运行或以您自己的用户身份运行服务时该包可用。 (我并不是说你应该以 root 身份安装,只是需要将它安装到以 root 身份运行时 python 会查找包的位置。(sudo) python3 -m site
  • 我在这个位置安装了 playsound 库,例如:./.local/lib/python3.6/site-packages @frippe
  • 这是一个相对路径。我认为您指的是 ~/.local/lib/....?您是否尝试将服务配置为以安装软件包的用户身份运行?
  • 是的。我真的不知道怎么做。你能告诉我如何正确配置它吗
  • 这对谷歌来说是一件小事。不管怎样,User=<username>[Service]

标签: python embedded systemd systemctl nvidia-jetson-nano


【解决方案1】:

你有几个选项,但基本上你需要做的是确保安装的包在以配置的用户(默认为 root)运行时对 python 可用。

接下来,由于您已将脚本拆分为多个文件,因此您需要确保这些文件位于 python 已知的位置(或指示 python 查找其他目录)。

以下配置应该会有所帮助,假设您在 /home/znvidia 中以 znvidia 用户身份运行脚本是您的工作。

[Unit]
Description="Some useful description"

[Service]
User=znvidia  # Or leave out for root
WorkingDirectory=/home/znvidia/Desktop
ExecStart=/usr/bin/python3.6 /home/znvidia/Desktop/Drowsiness_detection.py

[Install]
WantedBy=multi-user.target

【讨论】:

  • 感谢您的支持
猜你喜欢
  • 2020-07-16
  • 2019-12-01
  • 2017-08-01
  • 2022-01-11
  • 1970-01-01
  • 2019-08-18
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
相关资源
最近更新 更多