systemctl 是 Linux 系统中用于控制 systemd 系统和服务管理器的命令行工具,提供了启动、停止、重启、启用、禁用服务等功能。以下是常用的 systemctl 命令及其功能:
服务管理相关命令
- 启动服务
systemctl start <服务名>
示例: 启动 nginx 服务
systemctl start nginx - 停止服务
systemctl stop <服务名>
示例: 停止 nginx 服务
systemctl stop nginx - 重启服务
systemctl restart <服务名>
示例: 重启 nginx 服务
systemctl restart nginx - 重新加载服务配置
systemctl reload <服务名>
示例: 重新加载 nginx 配置
systemctl reload nginx - 查看服务状态
systemctl status <服务名>
示例: 查看 nginx 服务状态
systemctl status nginx - 查看服务是否启用(随系统启动)
systemctl is-enabled <服务名>
服务启用与禁用
- 启用服务(开机自启)
systemctl enable <服务名>
示例: 设置 nginx 服务开机自启
systemctl enable nginx - 禁用服务(关闭开机自启)
systemctl disable <服务名>
示例: 禁用 nginx 服务开机自启
systemctl disable nginx - 立即启用服务且保持开机自启
systemctl enable --now <服务名> - 立即禁用服务且停止运行
systemctl disable --now <服务名>
服务日志查看
- 实时查看服务日志
journalctl -u <服务名> -f
示例: 实时查看 nginx 日志
journalctl -u nginx -f - 查看服务启动失败的原因
journalctl -xe
其他管理命令
- 列出所有服务
systemctl list-units --type=service - 列出已启用的服务
systemctl list-unit-files --type=service --state=enabled - 重载 systemd 配置(在更改服务文件后使用)
systemctl daemon-reload - 开机重启服务
systemctl reboot - 关闭系统
systemctl poweroff - 挂起系统
systemctl suspend
如果你需要配置或调试特定服务,可以分享更多细节,我会进一步帮助!
自定义程序或脚本加入到 systemctl 中管理
要将一个自定义程序或脚本加入到 systemctl 中管理,需要创建一个 systemd 服务文件,并将其放置在适当的目录中(通常是 /etc/systemd/system)。以下是详细步骤:
步骤 1:创建服务文件
服务文件的命名通常是 <服务名>.service,文件路径为 /etc/systemd/system/<服务名>.service。
示例:创建服务文件
sudo nano /etc/systemd/system/my-service.service
步骤 2:编写服务文件内容
一个典型的 systemd 服务文件内容如下:
[Unit]
Description=描述你的服务功能
After=network.target # 指定服务需要在网络服务启动之后启动
[Service]
ExecStart=/usr/bin/python3 /path/to/your_script.py # 指定程序的启动命令
WorkingDirectory=/path/to/your_script_directory # 指定工作目录
Restart=always # 在服务退出时自动重启
User=root # 指定运行服务的用户
Group=root # 指定运行服务的用户组
[Install]
WantedBy=multi-user.target # 指定服务的目标运行级别
说明:
● ExecStart 是你的程序启动命令,需填写全路径。
● Restart=always 确保程序崩溃后会自动重启。
● 如果是非系统管理员服务,可以将 User 和 Group 改为普通用户。
步骤 3:保存并刷新 systemd 配置
保存服务文件后,执行以下命令让 systemd 重新加载配置:
sudo systemctl daemon-reload
步骤 4:启用服务
- 启动服务:
sudo systemctl start my-service - 设置开机自启:
sudo systemctl enable my-service - 检查服务状态:
sudo systemctl status my-service
步骤 5:验证服务日志
查看服务的运行日志,确认是否正常运行:
sudo journalctl -u my-service -f
其他说明
- 停止服务:
sudo systemctl stop my-service - 禁用服务(取消开机自启):
sudo systemctl disable my-service - 修改服务文件后需要重载配置:
sudo systemctl daemon-reload - 重新启动服务:
sudo systemctl restart my-service
516

被折叠的 条评论
为什么被折叠?



