在 /etc/rc.local 中,我以 root 身份启动 python 脚本,但控制台“抱怨”以下内容:
本地文件
sudo python3 /root/kodi/validator.py exit 0
控制台输出:
rc.local[744]: erorr: XDG_RUNTIME_DIR not set in the environment
我怎样才能解决这个问题?
代码在树莓派 4 上运行:Debian GNU/Linux 11 (bullseye)
错误消息表示从文件执行脚本XDG_RUNTIME_DIR时未设置环境变量。某些桌面环境使用此变量来设置用户特定文件和套接字的运行时目录。validator.py``/etc/rc.local
XDG_RUNTIME_DIR
validator.py``/etc/rc.local
要解决此问题,您可以在执行脚本之前XDG_RUNTIME_DIR在脚本中设置环境变量。以下是如何修改脚本的示例:/etc/rc.local``validator.py
/etc/rc.local``validator.py
bashCopy code#!/bin/bash # Set the XDG_RUNTIME_DIR environment variable export XDG_RUNTIME_DIR=/run/user/$(id -u) # Execute the validator.py script with sudo sudo python3 /root/kodi/validator.py # Exit with status 0 exit 0
在这个修改后的脚本中,我们将XDG_RUNTIME_DIR环境变量设置为/run/user/<user-id>使用id -u命令来检索当前用户的 ID。这可确保为运行脚本的用户正确设置运行时目录。
/run/user/<user-id>
id -u
进行更改后,保存文件并尝试/etc/rc.local再次运行脚本。该错误消息不应再出现。
/etc/rc.local