我有一个 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 权限运行该服务?