服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。

基础命令

  1. # 启动
  2. systemctl start [服务名]
  3. # 停止
  4. systemctl stop [服务名]
  5. # 重启
  6. systemctl restart [服务名]
  7. # 开机启动
  8. systemctl enable [服务名]
  9. # 开机不启动
  10. systemctl disable [服务名]
  11. # reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
  12. systemctl reload [服务名]
  13. # 刷新socket
  14. # 解释为重新加载 systemd 程序的配置文件。而所有的 unit 配置文件都是作为 systemd 程序的配置文件存在的
  15. systemctl daemon-reload
  16. # 查询服务状态
  17. systemctl status [服务名]
  18. # is-active:目前有没有正在运行中。
  19. # is-enabled:开机时有没有默认要启用这个 unit。
  20. # kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
  21. systemctl kill [服务名]
  22. # 显示全部服务
  23. systemctl show
  24. # 注销; 注销 unit,注销后你就无法启动这个 unit 了。
  25. systemctl mask [服务名]
  26. # unmask:取消对 unit 的注销。
  27. systemctl unmask [服务名]
  28. # 查看有多少服务
  29. systemctl list-unit-files
  30. # 查看加载失败的服务
  31. systemctl --failed
  32. # 系统关机
  33. sudo systemctl poweroff
  34. # 重新开机
  35. sudo systemctl reboot
  36. # 进入暂停模式
  37. sudo systemctl suspend
  38. # 进入休眠模式
  39. sudo systemctl hibernate
  40. # 强制进入救援模式
  41. sudo systemctl rescue
  42. # 强制进入紧急救援模式
  43. sudo systemctl emergency

简介

目录

  • Centos /usr/lib/systemd/system
  • Ubuntu /etc/systemd/system

类型

主要有四种类型文件.mount,.service,.target,.wants

.mount文件

.mount文件定义了一个挂载点,[Mount]节点里配置了What,Where,Type三个数据项 等同于以下命令:

  1. mount -t hugetlbfs /dev/hugepages hugetlbfs

.service文件

.service文件定义了一个服务,分为[Unit],[Service],[Install]三个小节

  1. [Unit]
  2. Description:描述,
  3. After:在network.target,auditd.service启动后才启动
  4. ConditionPathExists: 执行条件
  5. [Service]
  6. EnvironmentFile:变量所在文件
  7. ExecStart: 执行启动脚本
  8. Restart: fail时重启
  9. [Install]
  10. Alias:服务别名
  11. WangtedBy: 多用户模式下需要的

.target文件

.target定义了一些基础的组件,供.service文件调用

.wants文件

.wants文件定义了要执行的文件集合,每次执行,.wants文件夹里面的文件都会执行