linux 初始化进程, systemd, service
legacy 体系:
SysVinit :
初始化脚本位于 /etc/init.d/,初始化脚本需要支持 start, stop, status 等命令
使用 service 命令运行初始化脚本SysVinit 只启动一次,在之后不跟踪单个服务
新体系:
systemd 用于代替 SysVinit ,在初始化结束时, systemd 仍然作为守护进程运行。
使用 systemctl 与 systemd 交互,运行服务。
sudo systemctl enable [service] 开机启动服务sudo systemctl disable [service] 不开机启动服务sudo systemctl start [service] sudo systemctl stop [service] sudo systemctl restart [service]
systemd
systemd 是 boot 阶段第一个运行的 userspace 程序,在 kernel 初始化硬件后马上获得控制
systemd 通过 unit configuration file 管理资源
unit 包括 .service, .mount, .device 等文件
unit 保存在 /etc/systemd/system, /lib/systemd/system 等目录/etc/systemd/system 优先级最高
通过 systemctl 与 systemd 交互
systemd 与 systemctl 之间通过 D-Bus 交互
journald 收集和管理 systemd 的 log
通过 journalctl 查询 log