From f5eab619037a864a4a202bffe9b172dedfb8827c Mon Sep 17 00:00:00 2001 From: Mikhail Grigorev Date: Fri, 19 Dec 2025 17:56:31 +0500 Subject: [PATCH 1/5] Added EnvironmentFile to systemd unit --- .github/workflows/release.yml | 6 ++++-- install.sh | 9 ++++++++- update.sh | 11 ++++++++++- x-ui.service => x-ui.service.debain | 3 ++- x-ui.service.rhel | 16 ++++++++++++++++ 5 files changed, 40 insertions(+), 5 deletions(-) rename x-ui.service => x-ui.service.debain (77%) create mode 100644 x-ui.service.rhel diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c2a6989..563e1113 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,8 @@ on: - '**.go' - 'go.mod' - 'go.sum' - - 'x-ui.service' + - 'x-ui.service.debian' + - 'x-ui.service.rhel' jobs: build: @@ -78,7 +79,8 @@ jobs: mkdir x-ui cp xui-release x-ui/ - cp x-ui.service x-ui/ + cp x-ui.service.debian x-ui/ + cp x-ui.service.rhel x-ui/ cp x-ui.sh x-ui/ mv x-ui/xui-release x-ui/x-ui mkdir x-ui/bin diff --git a/install.sh b/install.sh index fd730bca..73d8ca1e 100644 --- a/install.sh +++ b/install.sh @@ -230,7 +230,14 @@ install_x-ui() { rc-update add x-ui rc-service x-ui start else - cp -f x-ui.service /etc/systemd/system/ + case "${release}" in + ubuntu | debian | armbian) + cp -f x-ui.service.debian /etc/systemd/system/ + ;; + *) + cp -f x-ui.service.rhel /etc/systemd/system/ + ;; + esac systemctl daemon-reload systemctl enable x-ui systemctl start x-ui diff --git a/update.sh b/update.sh index 66c0566c..151464fe 100755 --- a/update.sh +++ b/update.sh @@ -164,6 +164,8 @@ update_x-ui() { echo -e "${green}Removing old x-ui version...${plain}" rm /usr/bin/x-ui -f >/dev/null 2>&1 rm /usr/local/x-ui/x-ui.service -f >/dev/null 2>&1 + rm /usr/local/x-ui/x-ui.service.debain -f >/dev/null 2>&1 + rm /usr/local/x-ui/x-ui.service.rhel -f >/dev/null 2>&1 rm /usr/local/x-ui/x-ui -f >/dev/null 2>&1 rm /usr/local/x-ui/x-ui.sh -f >/dev/null 2>&1 echo -e "${green}Removing old xray version...${plain}" @@ -226,7 +228,14 @@ update_x-ui() { rc-service x-ui start >/dev/null 2>&1 else echo -e "${green}Installing systemd unit...${plain}" - cp -f x-ui.service /etc/systemd/system/ >/dev/null 2>&1 + case "${release}" in + ubuntu | debian | armbian) + cp -f x-ui.service.debian /etc/systemd/system/ >/dev/null 2>&1 + ;; + *) + cp -f x-ui.service.rhel /etc/systemd/system/ >/dev/null 2>&1 + ;; + esac chown root:root /etc/systemd/system/x-ui.service >/dev/null 2>&1 systemctl daemon-reload >/dev/null 2>&1 systemctl enable x-ui >/dev/null 2>&1 diff --git a/x-ui.service b/x-ui.service.debain similarity index 77% rename from x-ui.service rename to x-ui.service.debain index e911ef56..b01b3d7b 100644 --- a/x-ui.service +++ b/x-ui.service.debain @@ -4,10 +4,11 @@ After=network.target Wants=network.target [Service] +EnvironmentFile=-/etc/default/x-ui Environment="XRAY_VMESS_AEAD_FORCED=false" Type=simple WorkingDirectory=/usr/local/x-ui/ -ExecStart=/usr/local/x-ui/x-ui +ExecStart=/usr/local/x-ui/x-ui $ARGS Restart=on-failure RestartSec=5s diff --git a/x-ui.service.rhel b/x-ui.service.rhel new file mode 100644 index 00000000..3b933289 --- /dev/null +++ b/x-ui.service.rhel @@ -0,0 +1,16 @@ +[Unit] +Description=x-ui Service +After=network.target +Wants=network.target + +[Service] +EnvironmentFile=-/etc/sysconfig/x-ui +Environment="XRAY_VMESS_AEAD_FORCED=false" +Type=simple +WorkingDirectory=/usr/local/x-ui/ +ExecStart=/usr/local/x-ui/x-ui $ARGS +Restart=on-failure +RestartSec=5s + +[Install] +WantedBy=multi-user.target From 420b4e49c9bf6b773052c8494bfaf0dc82a51dc4 Mon Sep 17 00:00:00 2001 From: Mikhail Grigorev Date: Fri, 19 Dec 2025 18:03:30 +0500 Subject: [PATCH 2/5] Added support for older releases --- install.sh | 20 ++++++++++++-------- update.sh | 24 +++++++++++++++--------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/install.sh b/install.sh index 73d8ca1e..a8bb7422 100644 --- a/install.sh +++ b/install.sh @@ -230,14 +230,18 @@ install_x-ui() { rc-update add x-ui rc-service x-ui start else - case "${release}" in - ubuntu | debian | armbian) - cp -f x-ui.service.debian /etc/systemd/system/ - ;; - *) - cp -f x-ui.service.rhel /etc/systemd/system/ - ;; - esac + if [ -f "x-ui.service" ]; then + cp -f x-ui.service /etc/systemd/system/ + else + case "${release}" in + ubuntu | debian | armbian) + cp -f x-ui.service.debian /etc/systemd/system/ + ;; + *) + cp -f x-ui.service.rhel /etc/systemd/system/ + ;; + esac + fi systemctl daemon-reload systemctl enable x-ui systemctl start x-ui diff --git a/update.sh b/update.sh index 151464fe..9c1fffc5 100755 --- a/update.sh +++ b/update.sh @@ -227,15 +227,21 @@ update_x-ui() { rc-update add x-ui >/dev/null 2>&1 rc-service x-ui start >/dev/null 2>&1 else - echo -e "${green}Installing systemd unit...${plain}" - case "${release}" in - ubuntu | debian | armbian) - cp -f x-ui.service.debian /etc/systemd/system/ >/dev/null 2>&1 - ;; - *) - cp -f x-ui.service.rhel /etc/systemd/system/ >/dev/null 2>&1 - ;; - esac + if [ -f "x-ui.service" ]; then + echo -e "${green}Installing systemd unit...${plain}" + cp -f x-ui.service /etc/systemd/system/ >/dev/null 2>&1 + else + case "${release}" in + ubuntu | debian | armbian) + echo -e "${green}Installing debian-like systemd unit...${plain}" + cp -f x-ui.service.debian /etc/systemd/system/ >/dev/null 2>&1 + ;; + *) + echo -e "${green}Installing rhel-like systemd unit...${plain}" + cp -f x-ui.service.rhel /etc/systemd/system/ >/dev/null 2>&1 + ;; + esac + fi chown root:root /etc/systemd/system/x-ui.service >/dev/null 2>&1 systemctl daemon-reload >/dev/null 2>&1 systemctl enable x-ui >/dev/null 2>&1 From cfccaa259c4db66702c352e111ebb5e7d3de68c5 Mon Sep 17 00:00:00 2001 From: Mikhail Grigorev Date: Fri, 19 Dec 2025 18:24:51 +0500 Subject: [PATCH 3/5] Remove ARGS --- x-ui.service.debain | 2 +- x-ui.service.rhel | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-ui.service.debain b/x-ui.service.debain index b01b3d7b..037f88bb 100644 --- a/x-ui.service.debain +++ b/x-ui.service.debain @@ -8,7 +8,7 @@ EnvironmentFile=-/etc/default/x-ui Environment="XRAY_VMESS_AEAD_FORCED=false" Type=simple WorkingDirectory=/usr/local/x-ui/ -ExecStart=/usr/local/x-ui/x-ui $ARGS +ExecStart=/usr/local/x-ui/x-ui Restart=on-failure RestartSec=5s diff --git a/x-ui.service.rhel b/x-ui.service.rhel index 3b933289..30652d52 100644 --- a/x-ui.service.rhel +++ b/x-ui.service.rhel @@ -8,7 +8,7 @@ EnvironmentFile=-/etc/sysconfig/x-ui Environment="XRAY_VMESS_AEAD_FORCED=false" Type=simple WorkingDirectory=/usr/local/x-ui/ -ExecStart=/usr/local/x-ui/x-ui $ARGS +ExecStart=/usr/local/x-ui/x-ui Restart=on-failure RestartSec=5s From 2a99726b6c66dde28a5d419533b24317bf463fbf Mon Sep 17 00:00:00 2001 From: Mikhail Grigorev Date: Mon, 22 Dec 2025 11:17:40 +0500 Subject: [PATCH 4/5] Fixed copy unit --- install.sh | 4 ++-- update.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index a8bb7422..c4de4815 100644 --- a/install.sh +++ b/install.sh @@ -235,10 +235,10 @@ install_x-ui() { else case "${release}" in ubuntu | debian | armbian) - cp -f x-ui.service.debian /etc/systemd/system/ + cp -f x-ui.service.debian /etc/systemd/system/x-ui.service ;; *) - cp -f x-ui.service.rhel /etc/systemd/system/ + cp -f x-ui.service.rhel /etc/systemd/system/x-ui.service ;; esac fi diff --git a/update.sh b/update.sh index 9c1fffc5..c8c9dca6 100755 --- a/update.sh +++ b/update.sh @@ -234,11 +234,11 @@ update_x-ui() { case "${release}" in ubuntu | debian | armbian) echo -e "${green}Installing debian-like systemd unit...${plain}" - cp -f x-ui.service.debian /etc/systemd/system/ >/dev/null 2>&1 + cp -f x-ui.service.debian /etc/systemd/system/x-ui.service >/dev/null 2>&1 ;; *) echo -e "${green}Installing rhel-like systemd unit...${plain}" - cp -f x-ui.service.rhel /etc/systemd/system/ >/dev/null 2>&1 + cp -f x-ui.service.rhel /etc/systemd/system/x-ui.service >/dev/null 2>&1 ;; esac fi From 94b9abca62d2c7e97077ccc50d49b14ab674772c Mon Sep 17 00:00:00 2001 From: Mikhail Grigorev Date: Wed, 24 Dec 2025 19:36:48 +0500 Subject: [PATCH 5/5] Fixed unit filename --- x-ui.service.debain => x-ui.service.debian | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename x-ui.service.debain => x-ui.service.debian (100%) diff --git a/x-ui.service.debain b/x-ui.service.debian similarity index 100% rename from x-ui.service.debain rename to x-ui.service.debian