Linux中的纯文本模式(No Gnome,KDE,Unity)可延长电池寿命


14

如果我想完全禁用我的GUI以节省电池寿命,我将如何进行?

我知道我可以按Ctrl + Alt + F3并在命令行中,但是桌面管理器仍将在后台(我想)。

因此,在Ctrl + Alt + F3之后,我需要三个命令来:

  • 从命令行告诉我电池寿命
  • 关闭桌面环境

这有意义吗?

Answers:


11

如果我想完全禁用我的GUI以节省电池寿命,我将如何进行?

您只需禁用显示管理器(无论是kde,lightdm,gdm等)即可在启动时运行,只需根据您的系统运行即可:

sudo update-rc.d gdm remove
sudo update-rc.d kdm remove
sudo update-rc.d lightdm remove

这样,您不必在启动后停止桌面管理器。但是,如果您不想这样做,sudo /etc/init.d/<display_manager_name> stop将在启动后关闭桌面管理器:

sudo service gdm stop
sudo service kdm stop
sudo service lightdm stop

这将在使用任何系统upstart(例如Debian和衍生产品)中工作。

如果您的系统使用systemd,则可以使用systemctl

## All the next lines are executed as root
systemctl disable gdm ## or gdm3
systemctl disable kdm
systemctl disable lightdm
systemctl disable <name_of_the_service>

从命令行告诉我电池寿命

要查看电池状态,可以安装并运行screen/ byobu(这是一个屏幕管理器,它将显示电池的百分比+其他统计信息)或运行acpi -b

关闭桌面环境

检查我以前的回复。

我知道我可以按Ctrl + Alt + F3并在命令行中,但是桌面管理器仍将在后台(我想)。

Ctrl+ Alt+ F1-6只需将您切换到tty之一即可。您正在运行的所有程序将继续在后台执行。


2
sudo service gdm stop不会在启动时禁用它,而只是停止服务。对于Upstart作业,sudo mv /etc/init/gdm.conf{,.norun}请禁用。
bonsaiviking

@bonsaiviking中没有/etc/initgdm,kdm或lightdm的配置文件,gdm将其存储在中/etc/dbus-1/system.d/,kdm在中/etc/default
Braiam 2013年

那么他们不是Upstart职位。他们可能在那里存储配置,但是该服务可能是/etc/init.d/中由rc符号链接管理的System V初始化脚本。使用sudo update-rc.d gdm disable代替。
bonsaiviking

在无系统操作系统上,您也可以在运行时选择运行级别。只需在Grub2菜单上按“ e”并添加init N到内核​​启动行(N例如,3对于网络打开的Cli多用户)。一个
tuk0z

4

有人暗示过init为什么不将其与指定的运行级别一起使用?在Xubuntu上,最新1篇对我有用

$ runlevel  \\just to show your actual runlevel, expect N 2.
$ sudo telinit $runlevel
   where $runlevel is either:
    0 : System halt.
    1 : Single-User mode.
    2 : Graphical multi-user plus networking (DEFAULT)
    3 : Same as "2", but not used.
    4 : Same as "2", but not used.
    5 : Same as "2", but not used.
    6 : System reboot.

然后,可以将桌面管理器作为优先答复状态停止,或者以各种方式更改配置。

最后,如果您使用的是Solaris或类似操作系统,则可以使用initor svcadm和“ who -r”来显示当前运行级别。


我同意。有一阵子,我的系统默认为运行级别3,需要GUI时将运行级别更改为5,完成后将运行级别更改为5。
凯文

在SysvInit系统上(即,缺少systemd的系统),我总是有一些不同(仅在不同之处写):$ runlevel是:2:未使用;3:Cli多用户加网络;4:未使用;5:图形化多用户加网络。
tuk0z

2

问题在于,在大多数Linux发行版中,该init过程会在自己的终端上启动窗口管理器,因此:

  1. 要杀死所有图形界面,您必须是root用户
  2. 即使您以超级用户身份杀死X服务器,init 由于它占用了您的虚拟终端之一,也会自动重新启动它

因此,您必须配置您的系统,以便图形界面在启动init时不会启动,这将使您能够在常规tty中手动启动和终止它。那不是很方便,但是可行。查找一个名为的文件,/etc/inittab并参考您的发行版特定文档以了解如何防止init启动图形界面。可能只是一行要删除或评论。

关于其他问题,只需输入命令即可知道电池状态acpi


1

“告诉电池寿命”部分比较容易,我可以使用byobu或类似的实用程序。这些管理器很棒,因为它们会将会话与终端分开,这意味着您甚至可以在byobu的DE中开始工作,然后只需切换DE并在tty中继续即可。

或者,您可以在shell中实现此$PS1功能(考虑和bash函数)。

对于快速切换部分,关闭DE意味着关闭其中运行的所有程序,这可能意味着数据丢失。可以将其视为需要root访问权限的原因。

但是,如果您确实想要此功能,并且希望能够随时快速完成此操作,则可以为此编写脚本,将其“提供”给root并设置setuid位,这样,如果有人运行此特定脚本,它将以无需任何进一步身份验证的 root 用户。更复杂的是某些发行版不允许您使用脚本来完成此操作。这可以通过创建一个C包装程序来解决,该包装程序将为exec您提供脚本并改用该包装程序。

我可能会采用这种方法,并考虑其他功能,例如从DE内部运行时不切换,不立即切换任何内容(例如60s周期)或将其映射到Byobu中的键。


0

我最近发现了一个不错的软件包grml-rescueboot,当您将其安装在计算机上后,便可以将ISO映像放入/ boot / grml目录中,然后在发出update-grub命令时,该软件包会作为启动的内容添加到grub引导中。

如果您使用其ISO映像并从其完全基于文本的位置启动。但是,此解决方案的优点在于,当您靠近电源时,您始终可以重新启动到常规设置。

由于大多数发行版均提供此软件包的详细信息,请在此处进行安装,然后阅读手册页。


-1

只是init 3在文本模式下运行系统。

或编辑/ etc / inittab并将运行级别更改为3(如果要GUI的话)将运行级别更改为5


如果要在没有GUI的情况下运行系统。只需运行#init 3或者,如果你想运行在文本模式下改变系统的/ etc / inittab中3平总是可以换到初始化5
比尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.