systemd和systemctl命令

什么是Systemd

Systemd是一个系统和服务管理器,用于初始化和管理Linux系统中的进程和服务。它提供了许多功能,如服务管理、系统资源管理、定时任务管理等。Systemd的主要目标是提供一种高效、灵活和可靠的方式来管理Linux系统中的进程和服务。

systemd提供了一种新的方法来管理系统启动过程,它引入了一种叫做"单元"的概念,每个单元代表一个特定的系统资源或服务。systemd可以管理各种类型的单元,包括服务单元、设备单元、挂载点单元等。

有什么特点
  1. 进程管理:Systemd是Linux系统第一个运行的进程,用来创建系统的守护进程来管理整个Linux系统。
  2. 并行启动:Systemd支持并行启动守护进程,提高了系统的启动速度和效率。
  3. 资源管理:Systemd可以监控和管理系统的资源使用情况,如CPU、内存、磁盘等,从而对系统资源进行合理分配和调度。
  4. 服务管理:Systemd可以管理Linux系统中的服务,通过定义服务的配置文件来控制服务的启动、停止、重新启动等操作。
  5. 日志管理:Systemd提供了一套完整的日志系统,可以记录系统中各个进程的日志信息,方便用户进行故障排查和系统监控。
  6. 用户会话管理:Systemd还可以管理用户的会话,包括登录、注销、重启等操作。
  7. 网络管理:Systemd可以配置和管理网络服务,包括网络连接、路由表等。
  8. 定时任务管理:Systemd支持定时任务的配置和管理,可以按照预定的时间间隔执行特定的任务。
systemctl命令

systemctl是systemd的命令行工具,用于管理和控制systemd。它可以启动、停止、重启和重新加载单元。此外,它还提供了一些其他的功能,如查看单元状态、查看日志、管理系统的targets等。

systemd配置文件

1)/etc/systemd/system:存放系统启动的默认级别级启动的unit的软连接,根据主机系统的需求所创建的执行脚本所在目录,优先级最高

2)/run/systemd/system:系统执行过程之中所产生的服务脚本所在的目录,优先级次之。

3)/usr/lib/systemd/system:存放在系统上的所有启动文件,优先级最低

unit分类
  1. Service unit:文件扩展名为.service,用于定义系统服务。
  2. Target unit:文件扩展名为.target,用于模拟实现“运行级别”,在systemd中没有运行级别的概念,创建标签为了兼容老版本
  3. Device unit:文件扩展名为.device,用于定义内核识别的文件。
  4. Mount unit:文件扩展名为.mount,定义文件系统挂载点。
  5. Socket unit:文件扩展名为.socket,用于标识进程间通信用到的socket文件。
  6. Snapshot unit:文件扩展名为.snapshot,用于管理系统快照。
  7. Swap unit:文件扩展名为.swap,用于标识swap设备。
  8. Automount unit:文件扩展名为.automount,用于文件系统自动挂载设备。
  9. Path unit:文件扩展名为.path,用于定义文件系统中的一文件或目录。常用于文件系统发生变化时,延迟激活服务。

服务的状态有哪一些

以查看mysql服务状态为例

 systemctl status mysql

 systemd和systemctl命令_第1张图片

 从上可以看出mysql服务正在运行,并且设置为了开机启动

那么还有哪些服务状态呢,请看下面!!

  1. active (running):表示服务正在运行,有一个或多个进程在系统中执行。
  2. active (exited):表示服务仅执行一次就正常结束,目前没有进程在系统中执行。
  3. active (waiting):表示服务正在执行,但在等待其他事件才能继续处理。
  4. inactive:表示服务没有运行。
  5. enabled:表示该服务已设置为开机启动。
  6. disabled:表示该服务未设置为开机启动。
  7. static:表示该服务不能自己启动,但可以被其他服务唤醒。
  8. 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

你可能感兴趣的:(linux,linux,服务器)