如何控制Linux启动服务和守护程序

刚刚启动,但是您的系统仍然感觉缓慢而缓慢吗? Linux在后台运行许多您甚至可能不知道的应用程序。这是控制它们的方法。

Linux启动

我们都知道该练习:您按下计算机上的电源按钮,稍等片刻,然后返回美观的登录。但是那段时间会发生什么?老式Linux用户将记住将滚动的诊断消息的页面(以及页面和PAGES)。这些消息包含有关正在加载的驱动程序,找到的文件系统以及正在启动的不同进程的信息。

让我们快速了解一下“开机"和“桌面登录"之间发生的情况。

p>

  • 打开计算机电源时,将加载BIOS。这是由硬件制造商提供的软件(与操作系统分开),并且包含您要从中引导会话的设备上的设置。
  • BIOS,根据这些设置,将控制权传递给其中的一个计算机的物理磁盘,特别是计算机的引导加载程序。虽然可以将引导加载程序设置为包括配置数据,但其主要工作是将控制权传递给操作系统。如果您的计算机有多个操作系统,则它提供了一种界面来从操作系统中进行选择。 GRUB是大多数现代Linux发行版的标准引导加载程序。
  • 引导加载程序启动Linux操作系统时,将加载内核(或操作系统的核心)。这将链接到您的硬件,然后启动一个过程,我们将其称为启动过程
  • 启动过程 >依次负责启动系统中的所有其他进程。其中包括服务器应用程序(包括将在其中显示漂亮的桌面登录的X Server进程),即所谓的“守护程序" (在后台等待特定事件的程序,例如< strong> CUPS 打印守护程序)和其他(例如按计划执行程序的 cron 守护程序)。
  • 这是我们关心的最后一步。通过设置调整配置,您可以精确控制默认情况下开始使用的内容。

    在本文中,我们将交替使用这些术语。两者之间的技术差异超出了本文的范围。但是出于我们的目的,它们是相同的,因为它们可以由我们将要审查的工具进行控制。

    为什么用这些设置来摆弄?

    为什么要打扰任何一个这一切呢?保留默认值不是更好吗?

    Knowing how to configure what starts when your computer boots can provide a couple of benefits:

  • 首先,它可以提高性能。还记得您安装Apache尝试该新Web应用程序的时间吗?没有?猜猜是什么,除非您卸载它,否则Web服务器将在后台运行,并占用宝贵的RAM。调整启动设置意味着您可以保持安装状态,而仅在需要时启动它。 (在此处查看其他一些提高性能的技巧。)
  • 此外,其中一些程序可能会引发安全问题。例如,前面提到的Apache将在运行时开放与端口80的联系。如果Apache出现安全问题,那么向全世界开放该端口可能会使您的系统面临风险。最好在需要时启动服务器,并在完成后立即将其关闭。
  • 当前的启动过程

    当今的Linux系统使用一些主要的启动-

    在标准启动系统中, init 的历史可追溯到Linux所基于的原始Unix系统(其专有名称为SysVInit, (从System V Unix绘制)。初始化系统基于一组启动脚本,这些启动脚本保存在 /etc/init.d /etc/rc.d 目录中,并且使用“运行级别"。例如,面向桌面的发行版将在“运行等级5"中启动,该版本被定义为“带网络+ X显示管理器的多用户模式。"这就是为什么在启动这些发行版之一时,您会发现

    init 系统遵循Unix哲学,它做一件事并且做到了。好吧。系统支持者提出的论点之一是,它不尝试做太多事情,与以下某些替代方法不同。

    Upstart 系统是Canonical试图替换老化的 init 系统。它提供与 init 系统的兼容性,还提供其他功能。对“事件"的支持使它能够对系统的变化做出反应,例如插入新的硬件。此外, Upstart 可以与较早的 init 配置配合使用,为较旧的软件包和软件提供向后支持。

    不过,一旦Debian(该软件的上游来源) Ubuntu软件包)切换到 systemd ,Canonical决定这样做。 Ubuntu 15.04(Vivid Vervet)的发布是第一个默认情况下具有新启动系统的功能。

    它引发了我们时代最大的一场火焰大战。鉴于init的缺点(在此处突出显示),开发了 systemd (或 system守护程序)。这使用了一个全新的系统,其目标是“在满足所有条件时"启动服务。但是,像Upstart一样,它仍然可以支持许多软件包提供的 init 样式的脚本,其中包括一些明显的例外。

    请注意上图中的目录如何具有“ this.thing。想要"之类的名称。这表明 systemd的“按需" “行为"-当某些“想要"蓝牙访问并且满足条件时, systemd 将为其启动服务。

    管理后台程序/服务的工具

    尽管从命令行中学习如何操作却无济于事(对于 init / Upstart ,请查看 service 命令>(用于 systemd )),以下是一些用于管理服务的帮助程序。虽然您可能需要调整它们的配置,但总体而言,您将需要启用,或者将它们设置为默认自动运行,或者禁用。请注意,禁用的服务仍然可以随时启动(然后停止)。

    对于许多用户, rcconf 工具(与上述服务)将满足您的所有需求。文本用户界面(TUI)列出了所有可用的服务。您可以使用箭头键在列表中上下移动,并使用空格键切换服务是否应启动(带有星号)。使用Tab键在列表和确定 / 取消按钮以及空格键之间移动,也可以选择它们。

    使用以下内容:

    sudo apt-get install rcconf

    Red Hat开发了 Service Configuration Tool (服务配置工具),它是一个图形应用程序,默认情况下也出现在其派生产品中,例如CentOS和Fedora。它提供了与上面的 rcconf 相似的列表,并提供了可以检查和取消选中服务以将其设置为默认运行或不运行的类似列表。它还提供了允许您启动/停止/重新启动这些服务的按钮。

    KDE开发人员为其系统设置应用程序创建了一个模块,用于控制 systemd 服务。它位于系统管理类别下,可让您查看服务的状态,启用/禁用以及编辑服务(或“单元")的配置。它还包含 systemd 配置文件的编辑器。

    使用以下命令在Ubuntu中安装它:

    sudo apt-get install kde-config-systemd

    systemd-manager 是某些存储库(包括Fedora和Arch)中可用的基于GTK的应用程序,而Ubuntu用户可以从其GitHub页面上获取.DEB文件[不再可用]。用户界面有些不同,因为它是用Rust编写的,但是很容易找到启用/禁用和启动/停止服务的控件,而大的中央窗格则允许您编辑配置。

    下载完该软件包后,您可以通过以下方式安装该软件包:

    sudo dpkg -i systemd-manager-download.deb

    对于基于GTK的台式机, systemadm 工具还为您提供了一种启动/停止/重启服务的方法。使用以下命令在Ubuntu中安装它:

    sudo apt-get install systemd-ui

    系统是未来

    尽管我们在本文中同样着重介绍了两个主要的启动管理系统, init systemd ,大​​多数主流发行版都朝着后者的方向发展。甚至创建自己的替代方法的Canonical也看到了墙上的文字,并默认包含 systemd

    标签: