2

FreeBSD最大的特点就是稳,让你难以置信的稳。提到FreeBSD,还需要感谢带我认识它的刘仕臣老师。

frpc默认情况下会随着shell的退出而自动终止,而且我们也希望在服务器启动时能够自动启动frpc服务,以及在frpc发生错误时,服务器能够自动重启该服务。

步骤如下:

下载frpc

下载frpc并将相关的配置项写入frpc.ini中,然后我们将frpcfrpc.ini一并上传到FreeBSD服务器。其实这个位置不重要,只需要保证frpc可执行以及frpc.ini可读即可。

比如我上传到了:/usr/local/opt/frp_0.48.0_freebsd_amd64

创建启动脚本

切换到root用户,并创建/etc/rc.d/frpc文件:$ ee /etc/rc.d/frpc,然后粘入以下内容:

#!/bin/sh
 
# PROVIDE: frpc
# REQUIRE: LOGIN
# KEYWORD: frpc
 
. /etc/rc.subr
 
name="frpc"
rcvar=frpc_enable
 
load_rc_config $name
 
: ${frpc_enable="NO"}
: ${frpc_user="nobody"}
: ${frpc_flags="-c /usr/local/opt/frp_0.48.0_freebsd_amd64/frpc.ini"}

daemon_pidfile="var/run/frpc_daemon.pid" 
pidfile="/var/run/frpc.pid"
command="/usr/local/opt/frp_0.48.0_freebsd_amd64/frpc"
start_cmd="/usr/sbin/daemon -r -R 5 -u $frpc_user -P $daemon_pidfile -p $pidfile -t $name $command $frpc_flags"
start_postcmd="${name}_poststart"
stop_cmd="${name}_stop"

frpc_poststart()
{
    echo "${name}_daemon running pid `cat ${daemon_pidfile}`."
    echo "${name} running pid `cat ${pidfile}`."
}

frpc_stop()
{
    if [ -f "$daemon_pidfile" ]; then
        pid=`cat $daemon_pidfile`
        echo "Stopping pid ${pid}."
        kill $pid
    else
        echo "${name} not running?"
    fi
}

 
run_rc_command "$1"

保存后为其添加执行权限:$ chmod +x /etc/rc.d/frpc

启动脚本

最后我们编辑etc/rc.conf,并向其最后一行添加:frpc_enable="YES"。接下来便可以使用:service frpc start来启动frpc了,而且当FreeBSD下次重启时,也会自动地启动frpc

参考:Frp 在 FreeBSD 上的启动与进程守护脚本


潘杰
3.1k 声望238 粉丝

引用和评论

0 条评论