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]]
|
[[package]]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.22.9"
|
version = "0.22.10"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -1686,7 +1686,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.22.9"
|
version = "0.22.10"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
@ -1698,7 +1698,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.22.9"
|
version = "0.22.10"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
|
|||||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.22.9"
|
version = "0.22.10"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.22.9"
|
version = "0.22.10"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
|||||||
@ -332,6 +332,33 @@ install_verified_executable() {
|
|||||||
sudo chmod 0755 "$dest"
|
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() {
|
pacman_install() {
|
||||||
local log_file
|
local log_file
|
||||||
log_file=$(mktemp --tmpdir="$TMPDIR" lesavka-pacman.XXXXXX.log)
|
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 " Build source: $SRC/target/release/lesavka-client"
|
||||||
echo " TLS identity: $CLIENT_PKI_DIR"
|
echo " TLS identity: $CLIENT_PKI_DIR"
|
||||||
echo " Captures: $CLIENT_CAPTURE_DIR"
|
echo " Captures: $CLIENT_CAPTURE_DIR"
|
||||||
|
warn_running_stale_client_processes
|
||||||
echo "✅ Installed version: lesavka-client ${INSTALLED_VERSION:-unknown}${INSTALLED_SHA:+ ($INSTALLED_SHA)}"
|
echo "✅ Installed version: lesavka-client ${INSTALLED_VERSION:-unknown}${INSTALLED_SHA:+ ($INSTALLED_SHA)}"
|
||||||
echo
|
echo
|
||||||
echo "Quick start:"
|
echo "Quick start:"
|
||||||
|
|||||||
@ -10,7 +10,7 @@ bench = false
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.22.9"
|
version = "0.22.10"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
autobins = false
|
autobins = false
|
||||||
|
|
||||||
|
|||||||
@ -84,7 +84,10 @@ fn client_install_reports_nvidia_and_open_source_media_routes() {
|
|||||||
for expected in [
|
for expected in [
|
||||||
"report_client_media_acceleration",
|
"report_client_media_acceleration",
|
||||||
"refresh_gstreamer_registry_cache",
|
"refresh_gstreamer_registry_cache",
|
||||||
|
"warn_running_stale_client_processes",
|
||||||
"Refreshing GStreamer plugin registry",
|
"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.*",
|
"run_as_user rm -f \"$USER_HOME/.cache/gstreamer-1.0\"/registry.*",
|
||||||
"gst-inspect-1.0 nvcodec",
|
"gst-inspect-1.0 nvcodec",
|
||||||
"gst-inspect-1.0 va",
|
"gst-inspect-1.0 va",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user