Fix ui-post-install.sh to use the full username (#4809)

Fixes #4808 by extracting the full username by:

- Get PID using pgrep
- Get UID from PID using /proc/${PID}/loginuid
- Get user name from UID using id
Also replaces "complex" pipe from ps to sed with a (hopefully) "simpler" (as in requiring less knowledge about the arguments of ps and regexps) invocation of cat and id.
This commit is contained in:
Dennis Schridde
2026-01-06 11:36:19 +01:00
committed by GitHub
parent f022e34287
commit 9bd578d4ea

View File

@@ -1,10 +1,15 @@
#!/bin/sh
set -e
set -u
# Check if netbird-ui is running
if pgrep -x -f /usr/bin/netbird-ui >/dev/null 2>&1;
pid="$(pgrep -x -f /usr/bin/netbird-ui || true)"
if [ -n "${pid}" ]
then
runner=$(ps --no-headers -o '%U' -p $(pgrep -x -f /usr/bin/netbird-ui) | sed 's/^[ \t]*//;s/[ \t]*$//')
uid="$(cat /proc/"${pid}"/loginuid)"
username="$(id -nu "${uid}")"
# Only re-run if it was already running
pkill -x -f /usr/bin/netbird-ui >/dev/null 2>&1
su -l - "$runner" -c 'nohup /usr/bin/netbird-ui > /dev/null 2>&1 &'
su - "${username}" -c 'nohup /usr/bin/netbird-ui > /dev/null 2>&1 &'
fi