sddm显示管理器设置“登录时恢复上一次会话”后遇到的问题

问题描述

KDE桌面的显示管理器sddm的桌面会话中可以进行会话保留,当重新启动后,会恢复保留的会话中打开的软件以及桌面设置。
在这里插入图片描述
但是设置“恢复上一次会话”后,如果桌面的“自动启动”中设置了一些自动启动的软件,可能会导致一些意想不到的问题:
我的桌面启动时自动启动的程序列表:
在这里插入图片描述
遇到了以下问题:

  1. 桌面conky出现重影
    当重启时,桌面会恢复上次会话中运行的conky,自动启动中的conky也会启动,但这两个conky使用的是同一个配置文件,因此造成conky重影。
  2. KDE桌面启动失败
    Crow Translate是Linux桌面的一款轻量级翻译软件,设置为开机自动启动后,导致桌面启动失败。因为桌面启动时,恢复了上次会话中运行的Crow Translate,但当自动启动中的Crow Translate启动时,会提示已有Crow Translate正在运行:
    Crow Translate的正在运行提示
    在这里插入图片描述
    因为KDE桌面的“自动启动”时,桌面还没加载出来,导致这个弹窗无法显示,也就无法点击“确定”,导致“自动启动”无法完成,桌面无法启动。
    一般遇到此问题时,重启电脑,就可以正常启动。大概是因为,此时桌面启动失败,所以再次启动时,就不存在上次会话,直接以一个空白会话启动。
    与Crow Translate形成对比的是fcitx-autostart
    fcitx-autostart在已存在正在运行的进程时,会在终端提示,并且提示完成后立即退出,因此不会对桌面启动产生影响。
    在这里插入图片描述

解决方法

以上两个问题,均与程序的单例运行有关:conky没有设置单例运行功能,因此会启动多个conky;Crow Translate的单例运行提示是以桌面弹窗形式提示,因此导致桌面无法正常启动。
因此,只需要把自动启动的conky与Crow Translate设置为只允许单例运行即可,flock命令可以实现:

  • 编辑自动启动中的conky与Crow Translate,修改执行的命令为:
  1. conky
    flock -xn "/tmp/conky.flock" -c "/usr/bin/conky -p 3"
    
  2. Crow Translate
    flock -xn "/tmp/crow.flock" -c "/usr/bin/crow"
    

在这里插入图片描述

  • flock命令的帮助文档

用法:
flock [选项] <文件|目录> <命令> [<参数>…]
flock [选项] <文件|目录> -c <命令>
flock [选项] <文件描述符号码>
通过 shell 脚本管理文件锁。
选项:
-s, --shared 获取共享锁
-x, --exclusive 获取排他锁(默认)
-u, --unlock 移除锁
-n, --nonblock 失败而非等待
-w, --timeout <秒> 等待限定的时间
-E, --conflict-exit-code <数字> 冲突或超时后的退出代码
-o, --close 运行命令前关闭文件描述符
-c, --command <命令> 通过 shell 运行单个命令字符串
-F, --no-fork 执行命令时不 fork
–verbose 增加详尽程度
-h, --help 显示此帮助
-V, --version 显示版本



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值