#!/bin/sh # xcheckrestart [-v] - list programs using outdated libraries verbose=false [ "$1" = -v ] && verbose=true for f in /proc/[0-9]*; do LIBS=$(grep -Po ' [r-][w-][x-]p .* *\K .* \(deleted\)$' $f/maps 2>/dev/null | grep -v -e /SYSV \ -e /.cache/fontconfig \ -e /var/cache/fontconfig \ -e /usr/share/glib-2.0/schemas/gschemas.compiled \ -e /dev/shm \ -e /home \ -e /memfd \ -e /i915 \ -e /run/user \ -e 'drm mm object' | sort -u ) if [ "$LIBS" ]; then EXE=$(readlink $f/exe) PKG=$(xbps-query -o "${EXE% (deleted)}") PKG=${PKG%%:*} PKG=${PKG%-*} printf '%d %s (%s)\n' ${f#/proc/} "$EXE" "$PKG" $verbose && printf '%s\n' "$LIBS" fi done