「GDM」- Oh no! Something has gone wrong error @20210206

问题描述

在安装 GDM 之后,启动u服务(systemctl start gdm3.service),此时显示错误信息:

Oh no! Something has gone wrong error

或者,在输入用户名与密码之后,不断的退到登录界面。

问题排查

修改/etc/gdm/custom.conf文件,加入如下行:

[debug]
Enable=true

同时你还要启动 syslog 服务(该服务通常是默认启动的)。

然后重启 GDM 服务(systemctl restart gdm3.service),再次进行登录,此时日志将写入/var/log/message中。

问题原因

可能每个人原因都不相同。下面是我的个人原因:

在我的情景中,之所以无法登录,是因为:它在登录的时候,会执行$HOME/.profile文件,而文件中存在语法错误。准确的说是:与执行的Shell不兼容。

脚本的执行是由/etc/gdm3/Xsession触发的,所使用的Shell程序是/bin/sh(脚本第一行)。在我的环境中,它被软链接到/bin/bash命令。当Bash被软链接到sh后(即以sh调用),将进入「POSIX模式」。如果你的脚本不符合POSIX的规范,比如命名中存在非法字符,都会导致错误。

解决办法

正常讲应该调整脚本,使脚本符合POSIX规范。但是实际情况复杂:1)脚本多,工作量大;2)规范里的功能少,不能满足某些需要。

所以我的解决办法就是从POSIX模式中退出来:在脚本的第一行加入set +o posix命令,管理POSIX模式。

参考文献

GNOME HELP/Troubleshooting
GNOME HELP/Configuration
BASH MANUAL/6.11 Bash POSIX Mode
How to disable an option with a bash script?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值