• 使用rc.local文件自启动
  • 使用systemctl自启动
  • 配置文件
  • unit分类
  • 启动脚本
  • 命令


使用rc.local文件自启动

在centos7中, 如果需要使用rc.local进行开机自启动, 需要给rc.local加执行权限
chmod +x /etc/rc.local

使用systemctl自启动

配置文件

配置文件存在于以下三个目录中
    1. /etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接, 优先级最高
    2. /run/systemd/system 系统执行过程中产生的服务脚本, 优先级第二
    3. /usr/lib/systemd/system 存放系统上所有的启动文件, 优先级最低

unit分类

根据后缀名识别类型
    1. .service - 定义系统服务的启动
    2. .target定义了系统启动级别的标签, systemd没有运行级别的概念, 创建标签是为了兼容老版本
    3. .socket定义了进程通用的套接字, 套接字和进程是分离的
    4. .device 定义了系统启动时内核识别的文件, systemd提供了设备的管理功能, /dev下的设备由/etc/udev下的配置文件和.device共同定制
    5. .mount 定义系统的fs挂载点
    6. .snapshop 系统快照
    7. .swap 用于识别swap设备
    8. .automount 文件系统的自动挂载点
    9. .path 用于定义fs中的一个文件或目录, 常用与fs发生变化时, 延迟激活服务

启动脚本

通常由3本分组成

[Unit]
[unit的类型: service target socket]
[install]

命令

  • 基础操作:
systemctl start|stop|restart|status name.service
  • 条件式重启:
即服务之前是启动的则进行重启,如果服务没有启动则不进行操作
systemctl try-restart name.service
  • 重载或重启:
首先进行重载,如果重载不成功则进行重启
systemctl reload-or-restart name.service
  • 重载或条件式重启:
systemctl reload-or-try-restart name.service
  • 设置服务是否可以被用户设置开机启动状态
systemctl unmask name.service  取消禁止
systemctl mask name.service 禁止
  • 查看服务的当前激活状态:
服务已经启动命令的状态返回值为0 命令未启动命令的状态返回值为非0值
systemctl is-active name.service
  • 查看所有已经激活的服务:
-t 指定显示的unit类型。
-a 或 --all 显示更加详细的信息列表。

systemctl list-units
systemctl list-units -t service
systemctl list-units -t service -a
  • 查看所有服务:
systemctl list-units  -a
  • 查看所有服务状态:
systemctl list-unit-files
-a 或--all : 查看所有服务的状态 
-t 或--type :指定需要查看的unit类型

loaded :配置文件已经加载,载入内存
active(running):一次或多次持续处理的运行
active(exited):成功完成一次性的配置
active(waiting):运行中,等待一个事件
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另一个启用的服务激活
  • 用来列出该服务在哪些运行级别下启用和禁用
ls /etc/systemd/system/*.wants/sshd.service
systemctl list-unit-files --type target --all
  • 设置服务开机不启动:
systemctl disable 服务名称unit
  • 查看服务是否开机自启:
systemctl is-enabled name.service
  • 察看服务的依赖关系:
systemctl list-dependencies name.service
systemctl list-depebdencies
  • 重载服务:
systemctl daemon-reload
  • 杀掉进程:
systemctl kill 进程名