我的 shell 脚本手动运行正常,但通过 systemd 启动时出错。问题是什么?
我已配置 xboxdrv 将我的 logitech f310 控制器重新映射为运行 Buster 的 Raspberry Pi 3B 上的鼠标。
当我从命令行运行它时
sudo xboxdrv -D -c /usr/share/doc/xboxdrv/logitech.xboxdrv
效果很好。所以我将其设置为在启动时运行的服务。首先我将上面的内容放入 shell 脚本中:
#!/bin/bash
sudo xboxdrv -D -c /usr/share/doc/xboxdrv/logitech.xboxdrv --silent & sleep 1
然后我将其保存为 /usr/share/doc/xboxdrv/logitech.sh ,然后使其可执行。
当我运行该脚本时sudo /usr/share/doc/xboxdrv/logitech.sh
一切正常。到目前为止,一切都很好。
然后我制作一个服务文件:
[Unit]
Description=start xboxdrv to configure logitech f310 gamepad
After=default.target
[Service]
ExecStart=/usr/share/doc/xboxdrv/logitech.sh
[Install]
WantedBy=default.target
我启用这个:
sudo systemctl enable /etc/sysemd/system/xboxdrv.service
并启动它:
sudo systemctl start xboxdrv.service
但现在我得到一个错误。这是我从journalctl -xe 得到的:
[ERROR] XboxdrvDaemon::run(): fatal exception: failed to get unique dbus name:
Connection ":1.21" is not allowed to own the service "org.seul.Xboxdrv" due to
security policies in the configuration file
那么这是什么意思以及为什么我会得到它?我不知道为什么 xboxdrv 需要这个连接?它所说的配置文件是什么?
更重要的是,我该如何解决这个问题?
谢谢!
答案1
看起来这是一个已知问题具有可以通过以下方式修复的权限编辑或写入新的 dbus 配置(这应该是提到的配置文件)。