最近,我发现 Linux 服务器上某个仅通过 ssh 访问的磁盘分区已满。我追踪到问题出在已填满磁盘的 VNC 日志上。使用 lsof,我发现即使删除了日志并重新启动了 VNC,磁盘空间也不会恢复,因为与窗口管理器相关的各种进程都打开了文件(nautilus、gnome-ses、gnome-key、metacity、gnome-pan、eggcups、bt-applet、nm-applet、pam-panel、escd、mapping-d、gnome-ter)。
系统管理员的建议是重启服务器。实际上,GUI 只用于安装服务器运行的软件包,因此大多数时候都不需要。如果可能的话,我宁愿在不重启的情况下解决问题。
如何从命令行重新启动 GUI 甚至正常关闭,以便稍后在需要时重新启动?
答案1
在大多数主流发行版中,运行级别 5 用于 GUI 环境,运行级别 3 用于文本模式。因此,您应该能够运行以下命令将其带入文本模式:
telinit 3
这告诉 init 进程转到运行级别 3。这将终止 GUI,但不是很优雅。要优雅地终止它,您必须实际连接到 GUI 并注销所有打开的会话。但是,如果有是没有打开的会话,它只是停留在 GDM 登录屏幕上,上述命令是安全的。
不幸的是,更改服务器启动的运行级别因发行版而异,没有一种方法可以让它坚持下去。
答案2
sudo killall X11 或类似的东西。或者 killall 你的 wm