2020-05-20 00:29:19
在Linux系统中,使用systemctl命令可高效管理服务的启动、停止及相关操作,以下是具体方法:


重启服务:通过sudo systemctl restart <服务名称>实现。此命令会先停止服务,再重新启动,适用于配置更改后需完全刷新服务状态的场景。例如修改Nginx配置后,使用sudo systemctl restart nginx使新配置生效,但会导致服务短暂中断。
重载服务:使用sudo systemctl reload <服务名称>。该命令会通知服务重新加载配置文件,而不中断服务运行。例如修改Nginx虚拟主机配置后,执行sudo systemctl reload nginx,服务会在不中断现有连接的情况下加载新配置。但并非所有服务都支持此操作,若不支持,systemctl会退回到restart。
查看服务状态:使用systemctl status <服务名称>。此命令可显示服务是否运行、PID、内存占用及最近几行日志等信息。例如查看Nginx状态,输入systemctl status nginx,输出会包含Active(运行状态)、Loaded(单元文件加载情况)、PID(进程ID)、Memory(内存占用)、CGroup(控制组信息)和Latest Logs(最近日志)等内容,有助于快速排查问题。

设置开机自启动:使用sudo systemctl enable <服务名称>。执行后,Systemd会在/etc/systemd/system/multi-user.target.wants/目录下为服务单元文件创建符号链接,确保系统启动时自动运行服务。例如在Debian/Ubuntu系统中启用Apache服务,命令为sudo systemctl enable apache2;在CentOS/RHEL系统中,命令为sudo systemctl enable httpd。
禁用开机自启动:使用sudo systemctl disable <服务名称>。该命令会移除符号链接,使服务不再随系统启动。例如禁用Nginx开机自启动,输入sudo systemctl disable nginx。
查看是否启用开机启动:使用systemctl is-enabled <服务名称>。命令会返回enabled或disabled,用于确认服务是否设置为开机自启动。
查看服务日志:使用sudo journalctl -u <服务名称>。例如查看Nginx的完整日志,输入sudo journalctl -u nginx。还可使用参数过滤日志,如sudo journalctl -u nginx -f实时跟踪最新日志;sudo journalctl -u nginx --since "2 hours ago"查看过去两小时内的日志;sudo journalctl -u nginx -p err只显示错误日志。
服务管理中重启和重载的区别:
使用建议: