使用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 进程名