Linux中的服务管理

简介: Linux系统可以同时运行数百个任务。其中大多数都属于操作系统环境的组成部分,不过可能也会有那么一两个你不需要的**守护进程**。有3种可用于启动守护进程和服务的工具,Linux发行版支持其中任意一种。传统的SysV系统使用/etc/init.d中的脚本。较新的systemd守护进程除了使用/etc/init.d之外,还用到了systemctl调用。还有些发行版使用的是upstart,配置脚本保存在/etc/init中。systemd如今已经取代了SysVinit系统。upstart是由Ubuntu开发并采用的,但是在14.04版中,已经改成了systemd。

概述

Linux系统可以同时运行数百个任务。其中大多数都属于操作系统环境的组成部分,不过可能也会有那么一两个你不需要的**守护进程**。有3种可用于启动守护进程和服务的工具,Linux发行版支持其中任意一种。传统的SysV系统使用/etc/init.d中的脚本。较新的systemd守护进程除了使用/etc/init.d之外,还用到了systemctl调用。还有些发行版使用的是upstart,配置脚本保存在/etc/init中。systemd如今已经取代了SysVinit系统。upstart是由Ubuntu开发并采用的,但是在14.04版中,已经改成了systemd。

如何确定系统使用的是SysVinit、systemd还是upstart?

ps -p 1 -o cmd

查看一号进程并输出进程启动指令

#ps -p 1 -o cmd
CMD
/usr/lib/systemd/systemd --switched-root --system --deserialize 22

d40b61e103084f1c95a5f00a5378b564.pngLinux/Unix系统必须有一个PID为1的初始化进程。该进程会执行fork和exec系统调用,生成其他进程。

系统显然使用的是sysytemd。

有些发行版中,SysVinit程序只是实际的init程序的一个符号链接,而且不管你用的是SysVinit、upstart还是systemd,ps命令输出的总是/sbin/init

 /home/scripts/etl]$ps -p 1 -o cmd
CMD
/sbin/init
/home/scripts/etl]$cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.8 (Santiago)

ps -eaf 查看

ps -eaf | grep upstart
ps -eaf | grep systemd

如果上面的命令返回upstart-udev-bridge或systemd/systemd,则表明系统运行的是upstart或systemd。如果找不到匹配的内容,说明系统可能运行的是SysVinit。

实战演练

大多数发行版都支持service命令。选项-status-all可以输出/etc/int.d中所定义的全部服务的当前状态。

grep命令筛选输出,只显示处于运行状态的服务

$ service -status-all | grep running

把不必要的服务都禁止掉。这可以降低系统负载,提高安全性。

需要检查的服务如下。

❏ smbd、nmbd:这两个是Samba守护进程,用于在Linux和Windows系统间共享资源。❏ telnet:这是一个古老的、不安全的登录程序。除非有无法抗拒的需求,否则应该使用SSH。

❏ ftp:另一个同样古老、不安全的文件传输协议。应该用SSH和SCP代替。

❏ rlogin:远程登录。使用SSH要更安全。

❏ rexec:远程执行命令。使用SSH要更安全。

❏ automount:如果你没有用NFS或Samba,就不需要这个。

❏ named:该守护进程提供了域名服务(DNS)。只有在系统定义了域名及其对应的IP地址的情况下才有必要使用该服务。你不需要用它来解析域名和访问网络。

❏ lpd:行式打印机守护进程(Line Printer Daemon)可以让其他主机使用本系统的打印机。如果不打算用作打印服务器,没必要使用该服务。

❏ nfsd:NFS守护进程。允许远程主机挂载本地主机的磁盘分区。如果不是用作文件服务器,可以不使用该服务。

❏ portmap:NFS服务的一部分。如果系统没有启用NFS,可以不使用该服务。

❏ mysql:数据库服务器。Web服务器可能需要用到它。

❏ httpd:HTTP守护进程。有时候是作为Server System软件组的一部分安装的。


禁止无用服务的方法不止一种,这取决于你使用的系统是基于Redhat还是Debian,运行的是systemd、SysV还是upstart。不管使用哪种方法,必须有root权限.

systemctl命令

systemctl enable SERVICENAME
        systemctl disable SERVICENAME
相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
25天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
42 5
linux系统服务二!
|
25天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
43 3
linux系统服务!!!
|
4月前
|
Linux
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
149 3
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
74 3
|
2月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
26 2
|
2月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
78 0
|
3月前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
438 3
|
3月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
4月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?