如何通过需要 sudo 的服务运行脚本?

如何通过需要 sudo 的服务运行脚本?

我有一个 python 脚本,它应该在 Ubuntu 18.04 启动后运行。用户进入实际的 Ubuntu 桌面后的任何时间都可以运行。我不完全了解权限,但是当我手动运行脚本时,它需要 sudo 才能工作,这可能是它在作为服务运行时不起作用的原因。

通过终端运行脚本时,我使用:

sudo /home/user/test_script.py

服务文件位于:/lib/systemd/system/test_script.service 文件

[Unit]
Description=Test Service
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/user/test_script.py
User=root

[Install]
WantedBy=multi-user.target

之后我用了:

sudo systemctl daemon-reload
sudo systemctl enable test-script.service
sudo systemctl start test-script.service

测试脚本.py

#!/usr/bin/env python3
import os
os.system("xinput map-to-output 14 DP-1")
os.system("xinput map-to-output 9 DP-2")

终端输出:

Systemd[1]: Started test_script.service
python3[3047]: Unable to connect to X Server
python3[3047]: Unable to connect to X Server

检查服务的状态,它启动了,但没有执行应执行的操作(设置一些触摸屏校准偏移量。)我如何使用 sudo 权限运行该服务?

相关内容