systemctl === Systemd服务管理器 ## 补充说明 **systemctl命令** 是systemd系统的核心控制工具,用于管理系统服务和系统状态。systemd是Linux系统中最早的初始化系统(init system),systemctl可以启动、停止、重启服务,查看服务状态,管理系统运行级别等。 systemd替代了传统的SysVinit,提供了更快的系统启动速度、并行启动服务、按需启动守护进程等功能。在现代Linux发行版(如CentOS 7+、Ubuntu 16.04+、Debian 8+)中,systemd已成为默认的init系统。 ### 安装 ```shell # systemd通常是系统的基础组件,大多数Linux发行版已预装 # 查看systemd版本 systemctl --version # 在容器环境中可能需要安装 # CentOS/RHEL yum install systemd # Ubuntu/Debian apt-get install systemd ``` ### 语法 ```shell systemctl [OPTIONS...] COMMAND [NAME...] ``` ### 常用命令 ```shell start 启动服务 stop 停止服务 restart 重启服务 reload 重新加载服务配置 enable 设置服务开机自启 disable 取消服务开机自启 status 查看服务状态 is-active 检查服务是否正在运行 is-enabled 检查服务是否启用开机自启 list-units 列出单元 list-unit-files 列出单元文件 daemon-reload 重新加载systemd配置 list-dependencies 列出依赖 kill 向服务进程发送信号 cat 显示单元文件内容 edit 编辑单元文件 get-default 查看默认目标 set-default 设置默认目标 isolate 切换到指定目标 help 获取帮助 ``` ### 实例 ```shell # 查看nginx服务状态 systemctl status nginx # 启动nginx服务 systemctl start nginx # 停止nginx服务 systemctl stop nginx # 重启nginx服务 systemctl restart nginx # 重新加载nginx配置(不中断服务) systemctl reload nginx # 设置nginx开机自启 systemctl enable nginx # 取消nginx开机自启 systemctl disable nginx # 查看nginx是否开机自启 systemctl is-enabled nginx # 查看nginx是否正在运行 systemctl is-active nginx # 查看所有已启用的服务 systemctl list-unit-files --type=service --state=enabled # 查看所有服务状态 systemctl list-units --type=service --all # 查看失败的服务 systemctl --failed # 重新加载systemd配置 systemctl daemon-reload # 查看服务的依赖关系 systemctl list-dependencies nginx # 查看服务的详细配置 systemctl cat nginx # 编辑服务配置 systemctl edit nginx # 创建自定义服务 # 创建服务文件 cat > /etc/systemd/system/myapp.service <`查看服务的详细日志。 7. systemd服务文件使用INI格式,包含[Unit]、[Service]、[Install]三个主要部分。 ### 相关命令 - `journalctl` — 查看systemd日志 - `systemd-analyze` — 分析系统启动性能 - `timedatectl` — 管理系统时间和日期 - `loginctl` — 管理登录会话 ### 参考链接 - [systemd官方文档](https://www.freedesktop.org/wiki/Software/systemd/) - [systemctl手册](https://www.freedesktop.org/software/systemd/man/systemctl.html) - [systemd服务文件配置](https://www.freedesktop.org/software/systemd/man/systemd.service.html)