我正在尝试执行包含yt
由 pip 安装的命令,该命令由 systemd 中的 python 脚本调用。
Python 脚本包含
subprocess.Popen(["yt", "playurl", "https://www.youtube..."])
因此,当我以用户身份调用此命令或使用python script.py
它时,它可以工作。但作为 Root 用户,它显示我的yt
不存在。我尝试使用runuser -u
不起作用
更新通过使用 pip 以 root 身份安装软件包来解决这个问题。但我认为这不是一个好的解决方案
答案1
您的问题是 yt 命令仅在您的用户 PATH 中,而不在 root 的 PATH 中。因此,您使用 root 安装软件包的解决方案是仅有的解决方案。另一个选项,在我看来,实际上不是一个好方法,就是~/.local/bin/yt
在 subprocess.Popen 中给出用户的二进制路径(可能在 中),而这有点难以以 root 身份使用该程序。