mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 16:10:59 +08:00
fix: 优化 Pure-Ftpd systemd 文件
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/goravel/framework/contracts/http"
|
||||
"github.com/spf13/cast"
|
||||
|
||||
"panel/app/http/controllers"
|
||||
"panel/pkg/tools"
|
||||
@@ -41,26 +42,6 @@ func (c *PureFtpdController) Status(ctx http.Context) http.Response {
|
||||
}
|
||||
}
|
||||
|
||||
// Reload 重载配置
|
||||
func (c *PureFtpdController) Reload(ctx http.Context) http.Response {
|
||||
check := controllers.Check(ctx, "pureftpd")
|
||||
if check != nil {
|
||||
return check
|
||||
}
|
||||
|
||||
tools.Exec("systemctl reload pure-ftpd")
|
||||
status := tools.Exec("systemctl status pure-ftpd | grep Active | grep -v grep | awk '{print $2}'")
|
||||
if len(status) == 0 {
|
||||
return controllers.Error(ctx, http.StatusInternalServerError, "获取PureFtpd状态失败")
|
||||
}
|
||||
|
||||
if status == "active" {
|
||||
return controllers.Success(ctx, true)
|
||||
} else {
|
||||
return controllers.Success(ctx, false)
|
||||
}
|
||||
}
|
||||
|
||||
// Restart 重启服务
|
||||
func (c *PureFtpdController) Restart(ctx http.Context) http.Response {
|
||||
check := controllers.Check(ctx, "pureftpd")
|
||||
@@ -273,7 +254,7 @@ func (c *PureFtpdController) GetPort(ctx http.Context) http.Response {
|
||||
return controllers.Error(ctx, http.StatusInternalServerError, "获取PureFtpd端口失败")
|
||||
}
|
||||
|
||||
return controllers.Success(ctx, port)
|
||||
return controllers.Success(ctx, cast.ToInt(port))
|
||||
}
|
||||
|
||||
// SetPort 设置端口
|
||||
|
||||
@@ -232,13 +232,12 @@ func Plugin() {
|
||||
facades.Route().Prefix("api/plugins/pureftpd").Middleware(middleware.Jwt()).Group(func(route route.Router) {
|
||||
pureFtpdController := pureftpd.NewPureFtpdController()
|
||||
route.Get("status", pureFtpdController.Status)
|
||||
route.Post("reload", pureFtpdController.Reload)
|
||||
route.Post("start", pureFtpdController.Start)
|
||||
route.Post("stop", pureFtpdController.Stop)
|
||||
route.Post("restart", pureFtpdController.Restart)
|
||||
route.Get("list", pureFtpdController.List)
|
||||
route.Post("add", pureFtpdController.Add)
|
||||
route.Post("delete", pureFtpdController.Delete)
|
||||
route.Delete("delete", pureFtpdController.Delete)
|
||||
route.Post("changePassword", pureFtpdController.ChangePassword)
|
||||
route.Get("port", pureFtpdController.GetPort)
|
||||
route.Post("port", pureFtpdController.SetPort)
|
||||
|
||||
@@ -81,11 +81,12 @@ sed -i 's!LimitRecursion\s*10000 8!LimitRecursion 20000 8!' ${pureftpdPath}/etc/
|
||||
sed -i 's!# TLS!TLS!' ${pureftpdPath}/etc/pure-ftpd.conf
|
||||
sed -i "s!# CertFile\s*/etc/ssl/private/pure-ftpd.pem!CertFile ${pureftpdPath}/etc/pure-ftpd.pem!" ${pureftpdPath}/etc/pure-ftpd.conf
|
||||
sed -i 's!# Bind\s*127.0.0.1,21!Bind 0.0.0.0,21!' ${pureftpdPath}/etc/pure-ftpd.conf
|
||||
sed -i "s!# PIDFile\s*/var/run/pure-ftpd.pid!PIDFile ${pureftpdPath}/etc/pure-ftpd.pid!" ${pureftpdPath}/etc/pure-ftpd.conf
|
||||
touch ${pureftpdPath}/etc/pureftpd.passwd
|
||||
touch ${pureftpdPath}/etc/pureftpd.pdb
|
||||
|
||||
openssl dhparam -out ${pureftpdPath}/etc/pure-ftpd-dhparams.pem 2048
|
||||
openssl req -x509 -nodes -days 3560 -newkey rsa:2048 -sha256 -keyout ${pureftpdPath}/etc/pure-ftpd.pem -out ${pureftpdPath}/etc/pure-ftpd.pem << EOF
|
||||
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -sha256 -keyout ${pureftpdPath}/etc/pure-ftpd.pem -out ${pureftpdPath}/etc/pure-ftpd.pem << EOF
|
||||
CN
|
||||
Beijing
|
||||
Beijing
|
||||
@@ -102,13 +103,13 @@ ln -sf ${pureftpdPath}/bin/pure-pw /usr/bin/pure-pw
|
||||
cat > /etc/systemd/system/pure-ftpd.service << EOF
|
||||
[Unit]
|
||||
Description=Pure-FTPd FTP server
|
||||
After=network.target
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
PIDFile=/var/run/pure-ftpd.pid
|
||||
PIDFile=${pureftpdPath}/etc/pure-ftpd.pid
|
||||
ExecStart=${pureftpdPath}/sbin/pure-ftpd ${pureftpdPath}/etc/pure-ftpd.conf
|
||||
ExecReload=/bin/kill -HUP \$MAINPID
|
||||
ExecStartPost=/bin/sleep 2
|
||||
ExecStop=/bin/kill -TERM \$MAINPID
|
||||
|
||||
[Install]
|
||||
|
||||
Reference in New Issue
Block a user