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
。