mirror of
https://github.com/alireza0/x-ui.git
synced 2026-03-13 21:13:09 +00:00
add xray-core restart option in cli
This commit is contained in:
15
main.go
15
main.go
@@ -22,7 +22,6 @@ import (
|
|||||||
|
|
||||||
"github.com/op/go-logging"
|
"github.com/op/go-logging"
|
||||||
"github.com/shirou/gopsutil/v4/net"
|
"github.com/shirou/gopsutil/v4/net"
|
||||||
xrayCore "github.com/xtls/xray-core/core"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func runWebServer() {
|
func runWebServer() {
|
||||||
@@ -68,7 +67,7 @@ func runWebServer() {
|
|||||||
|
|
||||||
sigCh := make(chan os.Signal, 1)
|
sigCh := make(chan os.Signal, 1)
|
||||||
// Trap shutdown signals
|
// Trap shutdown signals
|
||||||
signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGTERM)
|
signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGTERM, syscall.SIGUSR1)
|
||||||
for {
|
for {
|
||||||
sig := <-sigCh
|
sig := <-sigCh
|
||||||
|
|
||||||
@@ -99,6 +98,12 @@ func runWebServer() {
|
|||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
case syscall.SIGUSR1:
|
||||||
|
logger.Info("Received USR1 signal, restarting xray-core...")
|
||||||
|
err := server.RestartXray()
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("Failed to restart xray-core:", err)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
server.Stop()
|
server.Stop()
|
||||||
subServer.Stop()
|
subServer.Stop()
|
||||||
@@ -473,9 +478,3 @@ func main() {
|
|||||||
settingCmd.Usage()
|
settingCmd.Usage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func startXray() {
|
|
||||||
conf := xrayCore.Config{}
|
|
||||||
core, _ := xrayCore.New(&conf)
|
|
||||||
core.Start()
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -392,3 +392,7 @@ func (s *Server) GetCtx() context.Context {
|
|||||||
func (s *Server) GetCron() *cron.Cron {
|
func (s *Server) GetCron() *cron.Cron {
|
||||||
return s.cron
|
return s.cron
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Server) RestartXray() error {
|
||||||
|
return s.xrayService.RestartXray(true)
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ Environment="XRAY_VMESS_AEAD_FORCED=false"
|
|||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=/usr/local/x-ui/
|
WorkingDirectory=/usr/local/x-ui/
|
||||||
ExecStart=/usr/local/x-ui/x-ui
|
ExecStart=/usr/local/x-ui/x-ui
|
||||||
|
ExecReload=kill -USR1 $MAINPID
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
|||||||
58
x-ui.sh
58
x-ui.sh
@@ -286,6 +286,16 @@ restart() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
restart_xray() {
|
||||||
|
systemctl reload x-ui
|
||||||
|
LOGI "xray-core Restart signal sent successfully, Please check the log information to confirm whether xray restarted successfully"
|
||||||
|
sleep 2
|
||||||
|
show_xray_status
|
||||||
|
if [[ $# == 0 ]]; then
|
||||||
|
before_show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
status() {
|
status() {
|
||||||
systemctl status x-ui -l
|
systemctl status x-ui -l
|
||||||
if [[ $# == 0 ]]; then
|
if [[ $# == 0 ]]; then
|
||||||
@@ -1052,6 +1062,7 @@ show_usage() {
|
|||||||
echo "x-ui start - Start"
|
echo "x-ui start - Start"
|
||||||
echo "x-ui stop - Stop"
|
echo "x-ui stop - Stop"
|
||||||
echo "x-ui restart - Restart"
|
echo "x-ui restart - Restart"
|
||||||
|
echo "x-ui restart-xray - Restart xray-core"
|
||||||
echo "x-ui status - Current Status"
|
echo "x-ui status - Current Status"
|
||||||
echo "x-ui settings - Current Settings"
|
echo "x-ui settings - Current Settings"
|
||||||
echo "x-ui enable - Enable Autostart on OS Startup"
|
echo "x-ui enable - Enable Autostart on OS Startup"
|
||||||
@@ -1084,19 +1095,20 @@ show_menu() {
|
|||||||
${green}10.${plain} Start
|
${green}10.${plain} Start
|
||||||
${green}11.${plain} Stop
|
${green}11.${plain} Stop
|
||||||
${green}12.${plain} Restart
|
${green}12.${plain} Restart
|
||||||
${green}13.${plain} Check State
|
${green}13.${plain} Restart Xray
|
||||||
${green}14.${plain} Check Logs
|
${green}14.${plain} Check State
|
||||||
|
${green}15.${plain} Check Logs
|
||||||
————————————————
|
————————————————
|
||||||
${green}15.${plain} Enable Autostart
|
${green}16.${plain} Enable Autostart
|
||||||
${green}16.${plain} Disable Autostart
|
${green}17.${plain} Disable Autostart
|
||||||
————————————————
|
————————————————
|
||||||
${green}17.${plain} SSL Certificate Management
|
${green}18.${plain} SSL Certificate Management
|
||||||
${green}18.${plain} Cloudflare SSL Certificate
|
${green}19.${plain} Cloudflare SSL Certificate
|
||||||
${green}19.${plain} Firewall Management
|
${green}20.${plain} Firewall Management
|
||||||
————————————————
|
————————————————
|
||||||
${green}20.${plain} Enable or Disable BBR
|
${green}21.${plain} Enable or Disable BBR
|
||||||
${green}21.${plain} Update Geo Files
|
${green}22.${plain} Update Geo Files
|
||||||
${green}22.${plain} Speedtest by Ookla
|
${green}23.${plain} Speedtest by Ookla
|
||||||
"
|
"
|
||||||
show_status
|
show_status
|
||||||
echo && read -p "Please enter your selection [0-22]: " num
|
echo && read -p "Please enter your selection [0-22]: " num
|
||||||
@@ -1142,37 +1154,40 @@ show_menu() {
|
|||||||
check_install && restart
|
check_install && restart
|
||||||
;;
|
;;
|
||||||
13)
|
13)
|
||||||
check_install && status
|
check_install && restart_xray
|
||||||
;;
|
;;
|
||||||
14)
|
14)
|
||||||
check_install && show_log
|
check_install && status
|
||||||
;;
|
;;
|
||||||
15)
|
15)
|
||||||
check_install && enable
|
check_install && show_log
|
||||||
;;
|
;;
|
||||||
16)
|
16)
|
||||||
check_install && disable
|
check_install && enable
|
||||||
;;
|
;;
|
||||||
17)
|
17)
|
||||||
ssl_cert_issue_main
|
check_install && disable
|
||||||
;;
|
;;
|
||||||
18)
|
18)
|
||||||
ssl_cert_issue_CF
|
ssl_cert_issue_main
|
||||||
;;
|
;;
|
||||||
19)
|
19)
|
||||||
firewall_menu
|
ssl_cert_issue_CF
|
||||||
;;
|
;;
|
||||||
20)
|
20)
|
||||||
bbr_menu
|
firewall_menu
|
||||||
;;
|
;;
|
||||||
21)
|
21)
|
||||||
update_geo
|
bbr_menu
|
||||||
;;
|
;;
|
||||||
22)
|
22)
|
||||||
|
update_geo
|
||||||
|
;;
|
||||||
|
23)
|
||||||
run_speedtest
|
run_speedtest
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
LOGE "Please enter the correct number [0-22]"
|
LOGE "Please enter the correct number [0-23]"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -1188,6 +1203,9 @@ if [[ $# > 0 ]]; then
|
|||||||
"restart")
|
"restart")
|
||||||
check_install 0 && restart 0
|
check_install 0 && restart 0
|
||||||
;;
|
;;
|
||||||
|
"restart-xray")
|
||||||
|
check_install 0 && restart_xray 0
|
||||||
|
;;
|
||||||
"status")
|
"status")
|
||||||
check_install 0 && status 0
|
check_install 0 && status 0
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user