[Linux]systemd启动图形程序

2022-05-20 14:29:51 浏览数 (4)

上次找到的primenote有个问题,不能开机自动启动,gnome-tweak的自动启动也找不到它的执行程序。所以考虑用systemd启动,这里踩了个小坑,就是systemd启动图形程序需要指定图形环境。

创建服务目录

代码语言:javascript复制
$ mkdir ${HOME}/.local/share/systemd/user/

创建服务文件

代码语言:javascript复制
$ touch ${HOME}/.local/share/systemd/user/primenote.service

内容如下

其中的 usernaem 改为自己的用户名;环境变量 Environment 通过命令 env 可以获取;用户的id可以通过名命令 id 获取,通常第一个用户的id都是1000。

代码语言:javascript复制
[Unit]
Description=primenote sticky for desktop
After=network.service

[Service]
Type=idle
TimeoutStartSec=0
Environment="DISPLAY=:1"
Environment="XAUTHORITY=/run/user/1000/gdm/Xauthority"
Environment="XDG_RUNTIME_DIR=/run/user/1000"
ExecStart=/home/username/.local/bin/primenote

[Install]
WantedBy=graphical.target
WantedBy=org.gnome.Shell.target
WantedBy=user-runtime-dir@1000.service

测试

代码语言:javascript复制
$ systemctl --user start primenote.service
$ systemctl --user status primenote.service

设置自动启动

代码语言:javascript复制
$ systemctl --user enable primenote.service

查看日志

代码语言:javascript复制
$ journalctl --user -u primenote

0 人点赞