什么是Systemd
Systemd是一个系统和服务管理器,用于初始化和管理Linux系统中的进程和服务。它提供了许多功能,如服务管理、系统资源管理、定时任务管理等。Systemd的主要目标是提供一种高效、灵活和可靠的方式来管理Linux系统中的进程和服务。
systemd提供了一种新的方法来管理系统启动过程,它引入了一种叫做"单元"的概念,每个单元代表一个特定的系统资源或服务。systemd可以管理各种类型的单元,包括服务单元、设备单元、挂载点单元等。
有什么特点
- 进程管理:Systemd是Linux系统第一个运行的进程,用来创建系统的守护进程来管理整个Linux系统。
- 并行启动:Systemd支持并行启动守护进程,提高了系统的启动速度和效率。
- 资源管理:Systemd可以监控和管理系统的资源使用情况,如CPU、内存、磁盘等,从而对系统资源进行合理分配和调度。
- 服务管理:Systemd可以管理Linux系统中的服务,通过定义服务的配置文件来控制服务的启动、停止、重新启动等操作。
- 日志管理:Systemd提供了一套完整的日志系统,可以记录系统中各个进程的日志信息,方便用户进行故障排查和系统监控。
- 用户会话管理:Systemd还可以管理用户的会话,包括登录、注销、重启等操作。
- 网络管理:Systemd可以配置和管理网络服务,包括网络连接、路由表等。
- 定时任务管理:Systemd支持定时任务的配置和管理,可以按照预定的时间间隔执行特定的任务。
systemctl命令
systemctl是systemd的命令行工具,用于管理和控制systemd。它可以启动、停止、重启和重新加载单元。此外,它还提供了一些其他的功能,如查看单元状态、查看日志、管理系统的targets等。
systemd配置文件
1)/etc/systemd/system:存放系统启动的默认级别级启动的unit的软连接,根据主机系统的需求所创建的执行脚本所在目录,优先级最高
2)/run/systemd/system:系统执行过程之中所产生的服务脚本所在的目录,优先级次之。
3)/usr/lib/systemd/system:存放在系统上的所有启动文件,优先级最低
unit分类
- Service unit:文件扩展名为.service,用于定义系统服务。
- Target unit:文件扩展名为.target,用于模拟实现“运行级别”,在systemd中没有运行级别的概念,创建标签为了兼容老版本
- Device unit:文件扩展名为.device,用于定义内核识别的文件。
- Mount unit:文件扩展名为.mount,定义文件系统挂载点。
- Socket unit:文件扩展名为.socket,用于标识进程间通信用到的socket文件。
- Snapshot unit:文件扩展名为.snapshot,用于管理系统快照。
- Swap unit:文件扩展名为.swap,用于标识swap设备。
- Automount unit:文件扩展名为.automount,用于文件系统自动挂载设备。
- Path unit:文件扩展名为.path,用于定义文件系统中的一文件或目录。常用于文件系统发生变化时,延迟激活服务。
服务的状态有哪一些
以查看mysql服务状态为例
systemctl status mysql
从上可以看出mysql服务正在运行,并且设置为了开机启动
那么还有哪些服务状态呢,请看下面!!
- active (running):表示服务正在运行,有一个或多个进程在系统中执行。
- active (exited):表示服务仅执行一次就正常结束,目前没有进程在系统中执行。
- active (waiting):表示服务正在执行,但在等待其他事件才能继续处理。
- inactive:表示服务没有运行。
- enabled:表示该服务已设置为开机启动。
- disabled:表示该服务未设置为开机启动。
- static:表示该服务不能自己启动,但可以被其他服务唤醒。
- masked:表示该服务无论如何都不能被启动,因为它已被强制注销。但可以通过
systemctl unmask
指令改回原来的状态。
systemctl常用命令
systemctl #范列出系统上面有启动的unit
systemctl list-unit-files #列出所有已经安装的unit有哪些
systemctl list-units --type=service --all #列出类型为service的所有项目,不论启动与否
systemctl status firewalld #"mysql改成相应的服务,查看输出的结果是否有active(running)等字样"
systemctl stop firewalld #关闭防火墙(使用时换成相应的服务)
systemctl start firewalld #开启防火墙(使用时换成相应的服务)
sudo systemctl poweroff # 系统关机
sudo systemctl reboot # 重新开机
sudo systemctl suspend # 进入暂停模式
sudo systemctl hibernate # 进入休眠模式
sudo systemctl rescue # 强制进入救援模式
sudo systemctl emergency # 强制进入紧急救援模式
systemctl mask etcd.service #禁用某个服务
systemctl unmask etcd.service #解除禁用某个服务
设置开机自启动
//查看是否设置了开机自启动
systemctl is-enabled mysql #设置启动后输出结果为enabled否则为disabled
//开启mysql开机自启动
systemctl enable mysql
//关闭mysql开机自启动
systemctl disable mysql