hanzn-zzx
2023-08-23 06:01 deepin
Linux就是要这样的动手能力!处理应该没问题,等明天官方出来看看。
Reply Like 1 View the author
Linux就是要这样的动手能力!处理应该没问题,等明天官方出来看看。
是的,在 org.dde.session.Daemon1.service
中加相关 target
的依赖关系可解决此问题, 我们将在下次版本发布解决此问题。
是的,在 org.dde.session.Daemon1.service
中加相关 target
的依赖关系可解决此问题, 我们将在下次版本发布解决此问题。
好的,感谢回复。
Linux就是要这样的动手能力!处理应该没问题,等明天官方出来看看。
楼主已经反馈了,bug已在处理中了哈
@hotime github上,研发同事已经回复你了哈,感谢你的反馈与支持!
@hotime github上,研发同事已经回复你了哈,感谢你的反馈与支持!
刚刚看完正式的处理方案,妙啊
没想到dde-session-daemon.target.wants
是临时的,这正好解了我关于为什么dde-session-daemon.service
改名为了org.dde.session.Daemon1.service
的惑。
test
Popular Ranking
ChangePopular Events
More
V23Beta更新至818之后,systemd未按预期达到(Reached)
dde-session-daemon.target
目标状态,导致dde-polkit-agent
也未能启动,影响所有需要权限校验的软件,如:磁盘管理器、Gparted-分区编辑器、软件包安装器、sublimetext修改root用户文件的保存操作等等...【前置条件】: V23Beta更新至最新的818更新,内核6.1.32,X11
【复现步骤】: 重启计算机,登陆用户,等待任务栏加载完毕后立刻打开终端:
ps -ef
journalctl --user | grep Reached
systemctl --user status dde-session-daemon.target
【预期结果】:
ps-ef
后,在进程/usr/bin/dde-dock下方,应当能看到/usr/bin/dde-lock, /usr/lib/deepin-daemon/dde-osd, /usr/lib/polkit-1-dde/dde-polkit-agent, /usr/bin/dde-widgetsjournalctl --user | grep Reached
后,在最末尾也就是最近启动并登陆系统对应的时间内应当能看到 “Reached target dde-session-daemon target.” 并且应当不早于dde-session-pre target, 不晚于dde-session-initialized target.systemctl --user status dde-session-daemon.target
后,应当显示该目标为active【实际结果】:
ps-ef
后,在进程/usr/bin/dde-dock下方,并没有上述提到的几个进程(这几个进程对应的service是在/usr/lib/systemd/user/目录下,并且在子目录dde-session-daemon.target.wants/中有对应的软链接,当dde-session-daemon.target 正常Reached时,这些服务会跟着启动)journalctl --user | grep Reached
后,在最末尾也就是最近启动并登陆系统对应的时间内并没有 “Reached target dde-session-daemon target.” 这样的信息,也就是系统并未按照预期达到这个目标状态systemctl --user status dde-session-daemon.target
后,显示该目标为inactive【详细情况及暂时处理】:
首先,最开始留意到这个问题时,是因为发现在开机后立刻打开磁盘管理器会没有任何反应,按照正常流程它会弹出dde的权限校验对话框,也就是/usr/lib/polkit-1-dde/dde-polkit-agent。
在ps-ef中检查发现该进程未启动,于是在systemd管理的用户服务目录
/usr/lib/systemd/user/
中找到了对应的服务dde-polkit-agent.service
, 通过检查其服务配置可以看到它是After=dde-session-daemon.target目标的,并且在用户服务目录的子目录dde-session-daemon.target.wants
目录中也有dde-polkit-agent.service
的软链接,也就是只要这个目标正常抵达,那么没意外的话dde-polkit-agent.service
服务就基本上能启动。这时候通过执行
systemctl --user status dde-session-daemon.target
可以看到系统并未达到这个目标状态,而执行journalctl --user | grep Reached
可以看到确实是这样。另外,在dde-session-daemon.target
目标配置中有要求晚于dde-session-pre.target
, 早于dde-session-initialized.target
, 而dde-session-initialized.target
目标状态都达到了,dde-session-daemon.target
反而一直没达到。重新安装DeepinV23Beta系统,回到最开始状态,这时候使用上述命令可以发现并没有这个问题。通过对比最初的系统与更新后的系统,可以发现,有一点很重要的不同在于:
除了
dde-session-daemon.target.wants
中软链接的服务之外,最初的系统中,只有dde-clipboard-daemon.service
服务中明确提到了与dde-session-daemon.target
目标的依赖关系,其相关配置为:而更新后的系统中
dde-clipboard-daemon.service
服务配置中取消了这几行配置,也就是说现在没有其他服务与dde-session-daemon.target
目标有依赖关系,或许是因为这样的缘故,导致这个目标不再按照预期抵达,也就导致后续的几个服务也无法启动。我询问了百度AI相关的问题,它回答说“如果一个systemd中的target没有被任何service依赖,那么它就不会在开机时自动启动”, 我不知道它回答的对不对,但很像目前遇到的状况。在梳理了相关的用户服务之后,参考了一下与
dde-session-daemon.target
相似的目标dde-session-manager.target
,这两个目标都要求在dde-session-pre.target
目标之后并且在dde-session-initialized.target
目标之前抵达,而dde-session-manager.target
与dde-session-manager.service
有依赖关系,在其服务配置中是这样写的:于是就想,那么在
dde-session-daemon
对应的服务中加上类似的配置,让他与dde-session-daemon.target
产生依赖关系是不是就可以了?找了一下后发现,这个服务的文件名是org.dde.session.Daemon1.service
(话说它不能改叫dde-session-daemon.service
吗?),在其文件中增加如下配置:重启后一切正常了。这样的做法对吗?或者相对正确的做法应该是怎样的呢?大家有复现出这个问题吗?