FreeBSD最大的特点就是稳,让你难以置信的稳。提到FreeBSD,还需要感谢带我认识它的刘仕臣老师。
frpc默认情况下会随着shell的退出而自动终止,而且我们也希望在服务器启动时能够自动启动frpc服务,以及在frpc发生错误时,服务器能够自动重启该服务。
步骤如下:
下载frpc
下载frpc并将相关的配置项写入frpc.ini
中,然后我们将frpc
与frpc.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 上的启动与进程守护脚本
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
解题思路:线段树区间更新水题。 #include #include #include using namespace std; const int maxn = 100005; struct seg { int l,r,sum,lazy; }tree[maxn…