使用 systemd 管理 frp 服务

本文介绍如何使用 systemd 管理 frp 服务。内容包括:服务单元文件的结构([Unit]、[Service]、[Install] 三部分);将 frps.service 文件移动到 /usr/lib/systemd/system/ 目录;使用 systemctl 命令启动、停止、查看状态、启用或禁用开机自启;以及常见错误 'Failed to execute operation: Invalid argument' 的解决方法(删除 /etc/systemd/system/multi-user.target.wants 下同名文件)。

作者:zhuge···预计阅读 7 分钟·670 阅读·0 评论
使用 systemd 管理 frp 服务

systemd 拥有 11 个单元类型,分别是:服务(service)、套接字(socket)、设备(device)、挂载点(mount)、自动挂载点(automount)、 启动目标(target)、交换分区或交换文件(swap)、被监视的路径(path)、任务计划(timer)、 资源控制组(slice)、一组外部创建的进程(scope)。

其中,服务单元是以 .service 为后缀的单元文件,封装了一个被 systemd 监视与控制的进程。

服务的单元文件包括三个部分:[Service]、[Unit] 和 [Install]。

在 GitHub 上下载的 frp 压缩包中已经包含了对应 frpc 和 frps 的服务的 单元文件和单元模板文件。下面我们将分别讲解基于单元文件和基于单元模板文件进行管理 frps 服务(frpc 服务类似)。

vim frps.service

[Unit]
Description=Frp Server Service # 服务描述
After=network.target # frps 将会在 network.service 启动完毕之后再启动
[Service]
Type=simple # 不论进程是否启动成功,systemctl start 都执行成功
User=nobody # 设置进程在执行时使用的用户
Restart=on-failure # on-failure 表示仅在服务进程异常退出时重启
RestartSec=5s # 设置在重启服务前暂停多长时间
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini # 在启动该服务时需要执行的命令行
#ExecStart=/usr/bin/frpc -c /etc/frp/%i.ini #此处需修改
#ExecReload=/usr/bin/frpc reload -c /etc/frp/%i.ini #此处需修改
[Install]
WantedBy=multi-user.target # 用于 systemctl enable 时创建软连接

将这个文件移动到/usr/lib/systemd/system/目录下:

mv frps.service /usr/lib/systemd/system/

启动 frps:

sudo systemctl start frps

查看 frps 服务的状态:

sudo systemctl start frps

停止 frps:

sudo systemctl stop frps

开启 frps 服务开机自启动:

sudo systemctl enable frps

禁用 frps 服务开机自启动:

sudo systemctl disable frps


如果出现:Failed to execute operation: Invalid argument

到 /etc/systemd/system/multi-user.target.wants 删除同名文件


more https://blog.csdn.net/chensuanfa/article/details/124861175

相关文章

评论

加载中...