install: warn when client needs restart
This commit is contained in:
parent
5ec380a3cc
commit
e9a7e1e514
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -1652,7 +1652,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_client"
|
||||
version = "0.22.9"
|
||||
version = "0.22.10"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-stream",
|
||||
@ -1686,7 +1686,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_common"
|
||||
version = "0.22.9"
|
||||
version = "0.22.10"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@ -1698,7 +1698,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_server"
|
||||
version = "0.22.9"
|
||||
version = "0.22.10"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
|
||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
||||
|
||||
[package]
|
||||
name = "lesavka_client"
|
||||
version = "0.22.9"
|
||||
version = "0.22.10"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "lesavka_common"
|
||||
version = "0.22.9"
|
||||
version = "0.22.10"
|
||||
edition = "2024"
|
||||
build = "build.rs"
|
||||
|
||||
|
||||
@ -332,6 +332,33 @@ install_verified_executable() {
|
||||
sudo chmod 0755 "$dest"
|
||||
}
|
||||
|
||||
warn_running_stale_client_processes() {
|
||||
local installed=/usr/local/bin/lesavka-client
|
||||
local installed_inode=""
|
||||
installed_inode=$(stat -Lc '%i' "$installed" 2>/dev/null || true)
|
||||
local stale=()
|
||||
local pid exe exe_inode cmd
|
||||
|
||||
while read -r pid; do
|
||||
[[ -n "$pid" ]] || continue
|
||||
exe=$(readlink "/proc/$pid/exe" 2>/dev/null || true)
|
||||
[[ -n "$exe" ]] || continue
|
||||
exe_inode=$(stat -Lc '%i' "/proc/$pid/exe" 2>/dev/null || true)
|
||||
if [[ "$exe" == *" (deleted)"* || ( -n "$installed_inode" && "$exe_inode" != "$installed_inode" ) ]]; then
|
||||
cmd=$(tr '\0' ' ' <"/proc/$pid/cmdline" 2>/dev/null || true)
|
||||
stale+=("pid=$pid exe=$exe cmd=${cmd:-unknown}")
|
||||
fi
|
||||
done < <(pgrep -u "$ORIG_USER" -f '(^|/)(lesavka|lesavka-client)( |$|--)' 2>/dev/null || true)
|
||||
|
||||
if ((${#stale[@]} == 0)); then
|
||||
return
|
||||
fi
|
||||
|
||||
echo "⚠️ Lesavka is still running from an older/deleted binary."
|
||||
echo " Close and relaunch Lesavka before judging video/audio performance from this install."
|
||||
printf ' %s\n' "${stale[@]}"
|
||||
}
|
||||
|
||||
pacman_install() {
|
||||
local log_file
|
||||
log_file=$(mktemp --tmpdir="$TMPDIR" lesavka-pacman.XXXXXX.log)
|
||||
@ -567,6 +594,7 @@ echo " Desktop entry: /usr/share/applications/lesavka.desktop"
|
||||
echo " Build source: $SRC/target/release/lesavka-client"
|
||||
echo " TLS identity: $CLIENT_PKI_DIR"
|
||||
echo " Captures: $CLIENT_CAPTURE_DIR"
|
||||
warn_running_stale_client_processes
|
||||
echo "✅ Installed version: lesavka-client ${INSTALLED_VERSION:-unknown}${INSTALLED_SHA:+ ($INSTALLED_SHA)}"
|
||||
echo
|
||||
echo "Quick start:"
|
||||
|
||||
@ -10,7 +10,7 @@ bench = false
|
||||
|
||||
[package]
|
||||
name = "lesavka_server"
|
||||
version = "0.22.9"
|
||||
version = "0.22.10"
|
||||
edition = "2024"
|
||||
autobins = false
|
||||
|
||||
|
||||
@ -84,7 +84,10 @@ fn client_install_reports_nvidia_and_open_source_media_routes() {
|
||||
for expected in [
|
||||
"report_client_media_acceleration",
|
||||
"refresh_gstreamer_registry_cache",
|
||||
"warn_running_stale_client_processes",
|
||||
"Refreshing GStreamer plugin registry",
|
||||
"Lesavka is still running from an older/deleted binary.",
|
||||
"Close and relaunch Lesavka before judging video/audio performance",
|
||||
"run_as_user rm -f \"$USER_HOME/.cache/gstreamer-1.0\"/registry.*",
|
||||
"gst-inspect-1.0 nvcodec",
|
||||
"gst-inspect-1.0 va",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user