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

评论