如何从命令行重新启动X Window服务器?

如何在命令行中重新启动X Window服务器?
我真的很想能够重新启动我的图形用户界面,而不必进行完整的系统重启。
7个回答

注意:这将强制退出所有图形程序,您将失去任何未保存的工作,并且将被注销。非图形程序不会受到影响。

简而言之,在使用systemd(Ubuntu 15.04及更高版本)的系统上。

sudo systemctl restart display-manager

这将重新启动适当的显示管理器服务(lightdm至17.04,gdm3之后,sddm在Kubuntu中等)。如果需要,您可以将display-manager替换为lightdmgdm3sddm等,但这应该足够了。

对于其他 Ubuntu 版本,请先使用以下命令找出您的 Ubuntu 使用的显示管理器:

cat /etc/X11/default-display-manager

根据使用哪个显示管理器,您可以使用以下命令之一:
  • 默认的Ubuntu(使用LightDM)

    sudo systemctl restart lightdm
    
  • Gnome(使用GDM)

    sudo systemctl restart gdm
    
  • KDE(使用KDM)

    sudo systemctl restart kdm
    

    注意:从12.10到15.04,Kubuntu也使用LightDM。

  • 对于MDM(例如Mint Cinnamon)

    sudo systemctl restart mdm
    

4这可能对Unity有所改变。我的系统找不到gdm - Steven Roose
1据我所知,Unity使用lightdm。 - txwikinger
2这似乎是立即关闭所有应用程序和文档而不保存(与常规重新启动不同),那么这与sudo reboot有什么区别? - Amir Uval
2@uval,“sudo reboot”重启整个系统,包括计算机本身;而这个命令只会重新启动Xorg服务器,使得不需要图形界面的其他程序(例如Web服务器)能够继续工作。此外,所有已挂载的文件系统(如加密文件系统)、与远程主机的连接等,在此命令下仍然保持不变,与“reboot”命令相比。 - Dmitry Koroliov
2我重新启动:无法连接到Upstart:无法连接到套接字/com/ubuntu/upstart:连接被拒绝。 - William
1这个命令(sudo systemctl restart sddm.service)在Kubuntu 16.04 LTS上非常有效。它会关闭所有正在运行的应用程序,并需要重新验证身份。我的问题是,虽然我可以选择一个窗口,但无法移动任何窗口。现在一切都正常了(我也很开心)。 - Jon Spencer
cat /etc/X11/default-display-manager 是开始的方式... 做得好! - Cipi
运行 "sudo systemctl restart lightdm.service" 似乎已经破坏了我的xorg或lightdm或其他什么。现在当我重新启动我的笔记本电脑时,我只会得到一个带有闪烁光标的黑屏。我该怎么办? - Daniel Smolkin
关于我之前的评论:解决办法似乎是从TTY再次重新启动lightdm.service。然而,然后我陷入了一个登录循环中,就像这个问题(https://askubuntu.com/questions/223501/ubuntu-gets-stuck-in-a-login-loop)中描述的那样。那个问题的被接受的答案解决了我的问题。 - Daniel Smolkin
1这个关闭了浏览器,导致一个正在进行的下载被中断。Ubuntu 16.04 - juliangonzalez
第一个从终端运行的命令完成了它的工作,但是我无法登录。看起来它让我永远无法登录。 - Giorgi Gvimradze
不错,第一个命令对我起作用了。显示器变黑,几秒钟没有反应。半分钟后,默认的Ubuntu 16.04启动界面又出现了=)! - Cutton Eye
18.04 sudo systemctl restart display-manager 通过SSH要求我确认是否为显示的用户,我输入了密码,但它一遍又一遍地问同样的问题。同时,也从SSH中执行top命令,显示类似Firefox和Thunderbird这样的图形化程序正在运行。执行sudo pkill X后问题解决了,所有图形化程序都关闭了。 - dstonek
@juliangonzalez 这完全是可以预料的。它基本上会立即将您登出。 - xeruf
非常感谢。KDE Plasma曾经卡住,我无法做任何事情(甚至无法使用Ctrl+Alt+Fn切换到TTY)。我通过SSH登录进去,运行了这个命令,它起到了帮助作用。 - Puspam
这在Kubuntu 22.04上有效,当X11因某种原因在切换账户时崩溃。非常感谢!真的很期待Nvidia对Wayland的支持。 - TheLabCat

对于11.04及更早版本: sudo service gdm restart
对于11.10及更高版本: sudo service lightdm restart

+1 在树莓派上也能很好地运行(如果有人感兴趣的话,这就是我来到这里的原因 :)) - Levon

发现你可以执行 sudo pkill X 看起来对我有效!

4对我来说完美运作(我没有*dm服务,Xorg直接在用户自动登录后启动)。 - zgoda
对我来说没问题,使用 Arch Linux 和 bspwm(无显示管理器)。 - Amir Shabani

你可以尝试按下Ctrl+Alt+Backspace来重新启动X。

8在10.04版本中,默认情况下是被禁用的,因此通常不会起作用。 - Marcel Stimberg
6虽然它可以重新激活,但需要通过进入“系统”->“首选项”->“键盘”,在“布局”选项卡中点击“选项…”按钮,并启用“用于关闭X服务器的按键序列”。 - dv3500ea
8正确的快捷键是"Alt+SysRq+k",但他要求使用命令行。 - Li Lo

截至2012年10月24日,最新版本的Ubuntu。

  1. 打开Dash Home
  2. 搜索键盘布局
  3. 点击选项
  4. 展开标签“用于关闭X服务器的按键序列”
  5. 启用它并关闭。

命令行:

sudo restart lightdm


按下Alt+PrtScr/SysReq+k迅速将我登出,并且关闭了我的程序。当重新启动X服务器时,这是预期的行为吗?我使用的是11.10版本,sudo restart lightdm把我带到文本模式并似乎停留在那里关闭了一堆守护进程然后停止了。幸运的是,我不得不手动重启,幸好关机按钮会优雅地完成这个操作(有时候)。 - Asher
6SysRq+k会杀死当前终端上的所有正在运行的进程和子进程(即运行您的X服务器的终端)。使用它可能会导致系统丢失数据!请参阅:http://askubuntu.com/questions/14155/what-to-do-when-ctrl-c-wont-kill-running-job/14158#14158 - Stefano Palazzo

对于KDE:
sudo systemctl restart sddm.service