掌握Linux服务管理的利器:systemctl完全指南
1.1 服务的基本操作,用nginx举例:
# 启动一个服务
sudo systemctl start nginx
# 停止一个服务
sudo systemctl stop nginx
# 重启服务
sudo systemctl restart nginx
# 重新加载配置(不中断服务)
sudo systemctl reload nginx
# 查看服务状态
systemctl status nginx
sudo systemctl enable nginx
# 禁用开机自启
sudo systemctl disable nginx
# 查看是否启用自启
systemctl is-enabled nginx
二、进阶技巧:深入了解服务状态
2.1 查看详细的单元信息
# 显示服务的所有属性
systemctl show nginx
# 列出服务的依赖关系
systemctl list-dependencies nginx
journalctl -u nginx
# 实时跟踪日志输出
journalctl -u nginx -f
# 查看特定时间段的日志
journalctl -u nginx --since "2025-0-024" --until "2025-05-25"
当服务启动失败时,可以按照以下步骤排查:
1. 查看详细状态信息:systemctl status service-name -l
创建一个Python应用的service文件:vi m /etc/systemd/system/myapp.service
文件内容示例:
[Unit]
Description=My Python Application
After=network.target
[Service]
User=python
WorkingDirectory=/path/to/app
ExecStart=/usr/bin/python3 /path/to/app/main.py
Restart=always
[Install]
WantedBy=multi-user.target
然后重新加载systemd配置:
sudo systemctl daemon-reload
sudo systemctl start myapp
# 编辑服务文件添加以下内容
[Service]
MemoryLimit=512M
CPUQuota=50%
[Unit]
Description=Run my task daily
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
alias stl='systemctl'
alias jctl='journalctl'
2. 批量操作:同时操作多个服务
systemctl restart {nginx,mysql,php-fpm}
3. 快速查找:列出所有失败的服务
systemctl --failed
4. 电源管理:使用systemctl进行系统操作,好像多此一举。哈哈
systemctl reboot # 重启
systemctl poweroff # 关机
以为能躺赚,结果“养虾”变成了“养雷”,第一批“养虾人”已经失眠了……
DeepSeek被针对,Anthropic指控三家中国AI蒸馏剽窃,马斯克硬刚“贼喊抓贼”!
明明大厂裁员滚滚,为什么运维还这么难招?
在 SQL 中写了 in 和 not in,技术总监让我明天不用来了
年底了!系统稳如狗,甲方觉得我们没工作量,怎么收运维费?
为什么DeepSeek火之后,人们想到的是大量裁员,而不是实行上三休四?
《AI数据分析之ChatBI发展与应用实践》白皮书(附下载)正式上线啦
号外!《核心系统分布式数据库选型指南》电子书(附下载)正式上线
解锁数据架构现代化密码,《实时数仓选型指南》电子书(附下载)正式上线啦