从命令行终止 xserver(init 3/5 不起作用)

从命令行终止 xserver(init 3/5 不起作用)

我正在运行 Linux Mint 10,尽管我在其他 Linux 版本上也遇到过同样的问题。在研究过程中,我被告知/发现,如果 X 服务器挂起或出现其他错误,则可以转到 root 提示符(通常在另一个 tty 上),然后执行init 3(转到单用户模式),然后init 5返回到默认的图形会话。

不用说,我之前在多台机器上的多种配置中尝试过这个,但都无济于事。执行这两个命令后我收到的唯一反馈是停止然后重新启动的 VMWare 服务列表(来自内核模块)。

注意:如果我运行startx(在 之前或之后init 3),则会被告知 xserver 仍在运行,我应该删除/tmp/.X0-lock。 尝试后,它会删除该错误消息,但声称无法连接 xserver,因为另一个实例正在运行。

我该如何彻底终止 xserver?我能知道killall一些进程名称吗?

答案1

Linux Mint 基于 Debian。在 Debian 中,单用户运行级别为 1;3 仍然是多用户运行级别,因此允许 X 继续执行。因此,您需要切换到运行级别 1,init 1以停止由默认运行级别 (2) 启动的所有进程。然后您可以重新初始化到正确的运行级别:init 2

Debian 运行级别了解更多信息。

答案2

关闭 X 服务器的最简单方法是按Ctrl+ Alt+ Backspace

例如,在 Ubuntu 上,键盘快捷键称为“DontZap”,可以通过以下命令重新启用这些说明。在Linux Mint上应该也是一样的。


最好不要运行startx。它独立于init 3/ init 5,并且会造成混淆。


如今,pkill比 更受欢迎killall。它基本上做同样的事情,但它有一个合作伙伴命令,pgrep您可以使用它来在执行之前查看它会杀死什么。

因此尝试pgrep Xpgrep Xorg,然后运行pkill X​​或pkill Xorg如果pgrep仅列出您想要终止的程序。

在我的 Ubuntu 系统上,我能找到的最可靠的命令是:

pgrep -f '^/usr/bin/X '

这意味着你可以使用以下命令终止所有 X 服务器

pkill -f '^/usr/bin/X '

(但我还没有测试过)。


最后,别忘了查看/var/log/X.0.log~/.xsession-errors。也许你可以找出导致 X 服务器挂起的原因。

答案3

当我更新 Xorg 或视频驱动程序时:

  1. Ctrl++AltF1
  2. 以用户身份登录
  3. 键入以下命令:

    sudo /etc/init.d/lightdm stop #or slim gdm mdm etc...
    #do stuff
    sudo /etc/init.d/lightdm start #or slim gdm mdm etc...
    

(停止显示管理器也会停止 X。)

相关内容