公司寬帶是動態IP,需要使用frp映射很多端口,故需要frp客戶端在服務器重啟時,自動拉起進程。
總結下客戶端自啟動的幾種方法。
1.使用nohup啟動.
nohup /path/to/your/fprc -c /path/to/your/frpc.ini >/dev/null 2>&1 &
#nohup /app/frp_0.27.0_linux_amd64/frpc -c /app/frp_0.27.0_linux_amd64/frpc.ini >/dev/null 2>&1 &
或者cd到文件目錄執行:nohup ./frpc -c frpc.ini >/dev/null 2>&1 &
2.使用systemctl來控制,這種方式最適合Centos及redhat系統.
$sudo vim /lib/systemd/system/frpc.service
在frpc.service里寫入以下內容
[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/app/frp_0.27.0_linux_amd64/frpc -c /app/frp_0.27.0_linux_amd64/frpc.ini #啟動服務的命令,寫frpc的實際執行絕對路徑
[Install]
WantedBy=multi-user.target
$sudo systemctl daemon-reload
$sudo systemctl enable frpc.service
$sudo systemctl start frpc.service
3.使用supervisorctl來控制.
$sudo apt install supervisor或yum install -y supervisor
#安裝服務
$sudo vim /etc/supervisor/conf.d/frpc.conf
寫入如下內容:
[program:frpc]
command=/bin/bash -c "/app/frp_0.27.0_linux_amd64/frpc -c /app/frp_0.27.0_linux_amd64/frpc.ini" #frpc的真實執行路徑
directory=/app/frp_0.27.0_linux_amd64
autostart=true
autorestart=true
startsecs=10
startretries=10
user=root
ubuntu@ubuntu:/etc/supervisor/conf.d$ sudo supervisorctl status
[sudo] password for ubuntu:
frpc RUNNING pid 8608, uptime 4:44:07
值得注意的是,配置supervisor后,需要設置開機自啟systemctl enable supervisord
並驗證是否開機啟動:systemctl is-enabled supervisord
結束。