在 Ubuntu 18.04 中添加系统服务

有时候我们希望让一个服务端程序常驻后台,比如 FRP(反向代理)。传统方法是通过在命令后面追加 & 字符,将其后台运行。不过这样操作繁琐,想要开机自启的话,还要把命令加到 /etc/rc.local 里去,太麻烦。本文以 FRP 为例,介绍了一种新型方法,将这种程序作为服务运行,直接用 sudo service xxxx start/restart/stop 控制启停,非常方便。

准备工作

以 FRP 为例,从官网下载的 FRP 服务端,包含以下文件:

  • frps:可执行文件,FRP 的服务端程序
  • frps.ini:文本文件,FRP 的服务端配置

然后,我们把 frps 放到 /usr/bin 目录下,把 frps.ini 放到 /etc/frps 目录下(目录若不存在则新建)。

手动开启时,执行 /usr/bin/frps -c /etc/frps/frps.ini 即可。下面介绍将 frps 作为服务运行的方式。

编写 frps.service

/etc/systemd/system 目录下,新建一个文本文件,名为 frps.service,写入以下内容:

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frps/frps.ini

[Install]
WantedBy=multi-user.target

启动服务

输入以下命令启用该服务:

sudo systemctl enable frps

接着,该服务就会随着系统自动启动,并且你可以直接用 sudo service xxxx start/restart/stop 控制启停,非常方便。