这是我刚刚创建的解决方法graphical-session.target
(尚未解决)(在我的Kubuntu 16.04系统上):
- 创建一个伪systemd用户单元,该用户单元可上下移动图形会话.target。
~/.config/systemd/user/xsession.target
使用以下内容创建:
[单元]
描述= Xsession已启动并正在运行
BindsTo = graphical-session.target
告诉systemd这个新单位:
$> systemctl --user daemon-reload
- 创建自动启动和关闭脚本,以
xsession.target
通过Ubuntu 16.04桌面的当前可用机制来控制。
~/.config/autostart-scripts/xsession.target-login.sh
使用以下内容创建:
#!/ bin / bash
如果!systemctl --user是活动的xsession.target&> / dev / null
然后
/ bin / systemctl --user导入环境显示XAUTHORITY
/ bin / systemctl-用户启动xsession.target
科幻
~/.config/plasma-workspace/shutdown/xsession.target-logout.sh
使用以下内容创建:
#!/ bin / bash
如果systemctl --user是活动的xsession.target&> / dev / null
然后
/ bin / systemctl-用户停止xsession.target
科幻
使脚本可执行:
$> chmod + x〜/ .config / autostart-scripts / xsession.target-login.sh
$> chmod + x〜/ .config / plasma-workspace / shutdown / xsession.target-logout.sh
注意:这两个文件被放置在KDE将其自动启动和关闭的位置。这些文件可能放置在其他桌面环境(例如Gnome)的其他位置-但是我不知道这些环境。
注意:此解决方法缺少对多桌面会话的支持。graphical-session.target
只要一台计算机上仅运行一个活动的X11会话,它就可以正确处理(但对于我们大多数Linux用户而言都是这种情况)。
- 创建自己的系统用户单元,这些用户单元
graphical-session.target
在登录桌面时依赖并让它们干净地运行。
例如,@ mkaito的单位应如下所示:
[单元]
描述=红移
PartOf = graphical-session.target
[服务]
ExecStart = / bin / redshift -l 28:-13 -t 5300:3300 -b 0.80:0.91 -m randr
重启=总是
(别忘了daemon-reload
在编辑单位后执行a !)
- 重新启动计算机,登录并验证设备是否按预期启动
$> systemctl-用户状态图形会话。目标
●graphic-session.target-当前的图形用户会话
已加载:已加载(/usr/lib/systemd/user/graphical-session.target;静态;供应商预设:已启用)
活动:活动始于Don 2017-01-05 15:08:42 CET; 47分钟前
文件:man:systemd.special(7)
$> systemctl-用户状态你的单位...
在将来的某个日子(会是Ubuntu 17.04吗?),我的解决方法变得过时了,因为系统将graphical-session.target
正确处理自身。那天,只需删除自动启动和关闭脚本,然后xsession.target
-您的自定义用户单元就可以保持不变,并且可以正常工作。