# 解决lightdm向配置文件添加display-setup-script后无法启动的问题
配置服务器时,为了可以绕过登录直接运行X11应用,需要在每次启动X11服务器后都运行xhost +local:,以禁用本地运行X11程序时需要认证的问题。
在Google了一番后,在AskUbuntu发现了一个相关的讨论,内容是使用lightdm的启动脚本来运行xhost +local:。
当我按照讨论的结果想向/etc/lightdm/lightdm.conf添加display-setup-script后,发现linux mint并没有默认的lightdm.conf,而是在/etc/lightdm/lightdm.conf.d/目录中添加不同的配置文件,于是我在里面创建了配置文件,命名为99-start-script.conf(前面的数字越大,优先级越高),并向文件添加以下内容:
[Seat:*]display-setup-script=/usr/share/lightdm-start-script.sh[scode type=“yellow”]可能需要root权限创建文件[/scode]
保存后,在/usr/share/文件夹创建文件lightdm-start-script.sh,并在文件输入:
#!/bin/bashxhost +local:# 设置LVDS-1-1的分辨率,并设置为默认显示器xrandr --output "LVDS-1-1" --mode '1366x768' --rate 60 --primary# 设置VGA-0的分辨率和panningxrandr --output 'VGA-0' --mode '1920x1080' --panning '1920x1080+1366+0' --rate 60保存后,使用service lightdm restart重启,却发现lightdm无法启动,于是我查看了/var/log/lightdm/lightdm.log,但是日志文件并没有报错信息。
经过一番查找后,怀疑是其他配置文件里有设置display-setup-script,而我的新配置文件将原来的display-setup-script替换了,所以lightdm无法启动。
再经过各种Google后,发现运行lightdm --show-config可以显示当前的配置项,于是我将之前的配置文件99-start-script.conf重命名为99-start-script.conf.bak,并重启lightdm服务,运行lightdm --show-config后显示的输出如下:
[Seat:*]A allow-guest=falseC greeter-wrapper=/usr/lib/lightdm/lightdm-greeter-sessionD guest-wrapper=/usr/lib/lightdm/lightdm-guest-sessionE xserver-command=X -coreF type=xlocalI display-setup-script=/sbin/prime-switchF display-stopped-script=/sbin/prime-switchG greeter-session=slick-greeterH user-session=cinnamon
[LightDM]B backup-logs=false
Sources:A /usr/share/lightdm/lightdm.conf.d/50-disable-guest.confB /usr/share/lightdm/lightdm.conf.d/50-disable-log-backup.confC /usr/share/lightdm/lightdm.conf.d/50-greeter-wrapper.confD /usr/share/lightdm/lightdm.conf.d/50-guest-wrapper.confE /usr/share/lightdm/lightdm.conf.d/50-xserver-command.confF /usr/share/lightdm/lightdm.conf.d/90-nvidia.confG /usr/share/lightdm/lightdm.conf.d/90-slick-greeter.confH /etc/lightdm/lightdm.conf.d/70-linuxmint.confI /etc/lightdm/lightdm.conf.d/99-start-script.conf.可以看到display-setup-script项已经被nvidia的配置文件所使用,于是向/usr/share/lightdm-start-script.sh头部添加/sbin/prime-switch并保存,再将99-start-script.conf.bak重命名为99-start-script.conf.bak,再次重启lightdm服务,结果正常显示登录界面。