宝塔Go服务管理异常?试试CentOS下配置服务

技术 · 24 天前 · 60 人浏览

《我与宝塔面板的孽缘:当Systemd成为我的救命符咒》


第一章:宝塔,你为何总在「量子态」?

宝塔面板管理Go服务时,仿佛在玩一场 「我猜进程在不在」 的玄学游戏:

  • 场景1:点击「启动」按钮 → 转圈loading → 面板显示「未运行」 → 实际端口能访问 → 我:😐(默默掏出netstat -tulnp自证清白)
  • 场景2:手滑点两次「重启」 → 服务原地表演 「影分身之术」 → 端口冲突 → 我:🤯(疯狂kill -9诛九族)
  • 终极奥义:面板显示「运行中」 → 实际进程早已跑路 → 我:🤡(对着空气喊「你醒醒啊!」)

破案时刻:宝塔的「服务状态检测」可能比女朋友的心思还难猜——全靠PID文件(而Go二进制文件:我偏不生成!诶,就是玩儿~)


第二章:Systemd救场,化身「服务保姆」

既然宝塔的「自动挡」不好使,咱就切「手动挡」!祭出祖传Systemd配置:

[Unit]
Description=我的Go服务(这次再掉线算我输)  
After=network.target  # 等网好了再动,拒绝「拔剑四顾心茫然」  

[Service]
Type=simple  
User=root  # 别学我!用非root更安全(但我懒,理直气壮.jpg)  
ExecStart=/www/wwwroot/yisur/yisur_server_linux  
Restart=always  # 服务崩溃?自动复活!比灰太狼还敬业  
RestartSec=5s  # 复活CD:5秒,防止「仰卧起坐式」抽风  

# 日志配置:拒绝「黑盒操作」,必须透明!  
StandardOutput=syslog  
StandardError=syslog  
SyslogIdentifier=go_service_怨种日志  

[Install]  
WantedBy=multi-user.target  # 开机自启?拿来吧你!  

骚操作说明书

# 给服务「上户口」(系统:你谁啊?我:我家的!)  
sudo systemctl daemon-reload  

# 启动服务,并设置开机自启(服务:你礼貌吗?)  
sudo systemctl enable --now yisur_server  

# 查状态(服务:在的在的!别查岗了!)  
systemctl status yisur_server  

# 看日志(服务内心OS全记录)  
journalctl -u yisur_server -f --output cat  

第三章:人类与Systemd的「爱恨情仇」

经典翻车现场

  1. 错误203:权限不够 → 执行chmod +x时的手速堪比电竞选手
  2. 无限重启:配置写错 → journalctl里看服务在崩溃日志里写小作文
  3. 端口占用ss -tunlp一查,发现是上次没杀干净的「僵尸进程」

保命口诀

一赋权,二重载,三查日志别耍赖
遇报错,莫痴呆,复制粘贴问GPT怪

第四章:宝塔,我们还能做朋友吗?

虽然手搓Systemd真香,但宝塔的便利性不可否认!终极缝合方案

  1. 在宝塔里关掉Go服务管理(宝塔:你礼貌吗?)
  2. 假装手动配置的Systemd服务是「野生」进程
  3. 用宝塔的「监控」功能偷看Systemd服务的CPU内存(宝塔:你当我是备胎?)

真香定律:从此服务稳如老狗,再也不用和面板玩「猜心游戏」!


后记
由于服务器没办法CV,手动结果第一个[弄成了{还半天没发现
我:🙂(反手一个「?」)


技术宅的快乐
不就是把「薛定谔的服务」变成「牛顿的服务」吗?这波,我在第五层!

CentOS Service Go