Systemd 服务配置完整指南

以下是整理后的 Systemd 服务配置教程,以您提供的 frpc.service 文件为例:


1. 创建服务文件

/etc/systemd/system/ 目录下创建服务配置文件(需 root 权限):

sudo nano /etc/systemd/system/frpc.service
2. 编写服务配置

将以下内容粘贴到文件中(根据您的路径修改 ExecStart):

[Unit]
Description=frpc  # 服务描述
After=network.target  # 指定依赖关系(网络就绪后启动)

[Service]
Type=simple  # 服务类型(默认)
User=nobody  # 可选:指定运行用户(如 root)
ExecStart=/home/soft/frp_0.59.0_linux_amd64/start.sh  # 启动命令
Restart=on-failure  # 失败时自动重启
RestartSec=5s      # 重启间隔

[Install]
WantedBy=multi-user.target  # 多用户模式启用
3. 设置权限并重载配置
sudo chmod 644 /etc/systemd/system/frpc.service  # 设置文件权限
sudo systemctl daemon-reload  # 重新加载 systemd 配置
4. 管理服务
# 启用开机自启
sudo systemctl enable frpc.service

# 立即启动服务
sudo systemctl start frpc.service

# 检查状态
sudo systemctl status frpc.service

# 查看日志
journalctl -u frpc.service -f
5. 关键参数说明
参数 作用
Type=simple 默认类型,主进程退出即视为服务停止
Restart=on-failure 仅在异常退出时重启(可选 always
WantedBy 定义服务所属运行级别(multi-user.target = 命令行模式)

常见问题排查

  1. 启动失败

    • 检查脚本路径和权限:
      ls -l /home/soft/frp_0.59.0_linux_amd64/start.sh
      chmod +x /home/soft/frp_0.59.0_linux_amd64/start.sh
      
    • 手动运行脚本测试:
      /home/soft/frp_0.59.0_linux_amd64/start.sh
      
  2. 日志分析

    journalctl -u frpc.service --no-pager -n 50  # 查看最近50行日志
    
  3. 卸载服务

    sudo systemctl stop frpc.service
    sudo systemctl disable frpc.service
    sudo rm /etc/systemd/system/frpc.service
    

附:start.sh 脚本建议

确保您的启动脚本具有可执行权限,并避免后台运行(&),例如:

#!/bin/bash
/home/soft/frp_0.59.0_linux_amd64/frpc -c /home/soft/frp_0.59.0_linux_amd64/frpc.ini

按此配置后,frpc 服务将随系统自动启动并受 systemd 监控。

你可能感兴趣的:(Linux,问题记录,服务器,网络,linux)