网站搜索

如何停止和禁用 Linux 系统中不需要的服务


我们按照自己的规划和需求来搭建服务器,但是搭建服务器的时候想要实现什么功能,让它能够快速高效的运行。我们都知道,在安装 Linux 操作系统时,一些不需要的软件包和应用程序会在用户不知情的情况下自动安装。

在构建服务器时,我们需要问自己真正需要什么。我是否需要Web 服务器FTP 服务器NFS 服务器DNS 服务器 >数据库服务器或其他东西。

在本文中,我们将讨论其中一些不需要的应用程序和服务,您可能不需要这些应用程序和服务,但它们在操作系统安装过程中默认安装,并在不知不觉中开始占用您的系统资源。

首先使用以下命令了解系统上正在运行什么类型的服务。

[avishek@tecmint]# ps ax
样本输出
  PID TTY      STAT   TIME COMMAND
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:00  \_ [migration/0]
    4 ?        S      0:09  \_ [ksoftirqd/0]
    5 ?        S      0:00  \_ [migration/0]
    6 ?        S      0:24  \_ [watchdog/0]
    7 ?        S      2:20  \_ [events/0]
    8 ?        S      0:00  \_ [cgroup]
    9 ?        S      0:00  \_ [khelper]
   10 ?        S      0:00  \_ [netns]
   11 ?        S      0:00  \_ [async/mgr]
   12 ?        S      0:00  \_ [pm]
   13 ?        S      0:16  \_ [sync_supers]
   14 ?        S      0:15  \_ [bdi-default]
   15 ?        S      0:00  \_ [kintegrityd/0]
   16 ?        S      0:49  \_ [kblockd/0]
   17 ?        S      0:00  \_ [kacpid]
   18 ?        S      0:00  \_ [kacpi_notify]
   19 ?        S      0:00  \_ [kacpi_hotplug]
   20 ?        S      0:00  \_ [ata_aux]
   21 ?        S     58:46  \_ [ata_sff/0]
   22 ?        S      0:00  \_ [ksuspend_usbd]
   23 ?        S      0:00  \_ [khubd]
   24 ?        S      0:00  \_ [kseriod]
   .....

现在,让我们使用 netstat 命令快速查看接受连接(端口)的进程,如下所示。

[avishek@tecmint]# netstat -lp
样本输出
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 *:31138                     *:*                         LISTEN      1485/rpc.statd      
tcp        0      0 *:mysql                     *:*                         LISTEN      1882/mysqld         
tcp        0      0 *:sunrpc                    *:*                         LISTEN      1276/rpcbind        
tcp        0      0 *:ndmp                      *:*                         LISTEN      2375/perl           
tcp        0      0 *:webcache                  *:*                         LISTEN      2312/monitorix-http 
tcp        0      0 *:ftp                       *:*                         LISTEN      2174/vsftpd         
tcp        0      0 *:ssh                       *:*                         LISTEN      1623/sshd           
tcp        0      0 localhost:ipp               *:*                         LISTEN      1511/cupsd          
tcp        0      0 localhost:smtp              *:*                         LISTEN      2189/sendmail       
tcp        0      0 *:cbt                       *:*                         LISTEN      2243/java           
tcp        0      0 *:websm                     *:*                         LISTEN      2243/java           
tcp        0      0 *:nrpe                      *:*                         LISTEN      1631/xinetd         
tcp        0      0 *:xmltec-xmlmail            *:*                         LISTEN      2243/java           
tcp        0      0 *:xmpp-client               *:*                         LISTEN      2243/java           
tcp        0      0 *:hpvirtgrp                 *:*                         LISTEN      2243/java           
tcp        0      0 *:5229                      *:*                         LISTEN      2243/java           
tcp        0      0 *:sunrpc                    *:*                         LISTEN      1276/rpcbind        
tcp        0      0 *:http                      *:*                         LISTEN      6439/httpd          
tcp        0      0 *:oracleas-https            *:*                         LISTEN      2243/java         
....

在上面的输出中,您注意到服务器上可能不需要一些应用程序,但它们仍在运行,如下所示:

1. smbd 和 nmbd

smbd 和 nmbd 是 Samba 进程的守护进程。你真的需要在 Windows 或其他机器上导出 smb 共享吗?如果不!为什么这些进程在运行?您可以安全地终止这些进程并禁止它们在计算机下次启动时自动启动。

2. 远程登录

您是否需要通过互联网或局域网进行双向交互式文本通信?如果不!终止此进程并将其从启动时关闭。

3. 登录

您是否需要通过网络登录到另一台主机。如果不!终止此进程并禁止其在启动时自动启动。

4. 重新执行

远程进程执行又名 rexec 允许您在远程计算机上执行 shell 命令。如果您不需要在远程计算机上执行 shell 命令,只需终止该进程即可。

5、文件传输协议

您需要通过 Internet 将文件从一台主机传输到另一台主机吗?如果没有,您可以安全地停止该服务。

6.自动挂载

您是否需要自动挂载不同的文件系统来启动网络文件系统?如果不!为什么这个进程会运行?你为什么让这个应用程序使用你的资源?终止该进程并禁止其自动启动。

7. 命名

您需要运行名称服务器 (DNS) 吗?如果不是,到底是什么迫使您运行此过程并允许消耗您的资源。首先终止正在运行的进程,然后关闭它在启动时运行。

8. LPD

lpd 是打印机守护程序,可以打印到该服务器。如果您不需要从服务器打印,那么您的系统资源可能会被耗尽。

9. Inetd

您是否正在运行任何 inetd 服务?如果您正在运行像 ssh 这样的独立应用程序,它使用其他独立应用程序(如 Mysql、Apache 等),那么您不需要 inetd。最好终止该进程并禁用它下次自动启动。

10. 端口映射

Portmap 是一个开放网络计算远程过程调用 (ONC RPC),使用守护进程 rpc.portmap 和 rpcbind。如果这些进程正在运行,则意味着您正在运行 NFS 服务器。如果 NFS 服务器在未被注意到的情况下运行,则意味着您的系统资源被不必要地耗尽。

如何在 Linux 中终止进程

要终止 Linux 中正在运行的进程,请使用“Kill PID”命令。但是,在运行 Kill 命令之前,我们必须知道进程的PID。例如,这里我想找到一个PID为‘cupsd’的进程。

[avishek@tecmint]# ps ax | grep cupsd

1511 ?        Ss     0:00 cupsd -C /etc/cups/cupsd.conf

因此,“cupsd”进程的 PID 为“1511”。要终止该 PID,请运行以下命令。

[avishek@tecmint]# kill -9 1511

要了解有关 Kill 命令及其示例的更多信息,请阅读文章《Linux 中终止进程的 Kill 命令指南》

如何禁用 Linux 中的服务

在基于 Red Hat 的发行版(例如 Fedora 和 CentOS)中,使用名为“chkconfig”的脚本来启用和禁用 Linux 中正在运行的服务。

例如,让我们在系统启动时禁用 Apache Web 服务器。

[avishek@tecmint]# chkconfig httpd off
[avishek@tecmint]# chkconfig httpd --del

在基于 Debian 的发行版中,例如 UbuntuLinux Mint 和其他基于 Debian 的发行版使用名为 update-rc.d 的脚本强>。

例如,要在系统启动时禁用 Apache 服务,请执行以下命令。这里“-f”选项代表强制强制。

[avishek@tecmint]# update-rc.d -f apache2 remove

进行这些更改后,系统下次启动时将不再需要这些不必要的过程,这实际上将节省我们的系统资源,并且服务器将更加实用、快速、安全和可靠。

目前为止就这样了。我将再次发表另一篇有趣的文章。在此之前请继续关注并连接到 Howtoing。不要忘记在评论部分向我们提供您的宝贵反馈。