# #!/usr/bin/env bash # # # Check if PID is provided # if [ -z "$1" ]; then # echo "Usage: $0 " # exit 1 # fi # # PID=$1 # # # Verify if PID exists # if ! ps -p "$PID" >/dev/null; then # echo "Error: Process with PID $PID does not exist." # exit 1 # fi # # # Get VmRSS from /proc//status # VMRSS=$(grep VmRSS /proc/"$PID"/status | awk '{print $2}') # # # Check if VmRSS was found # if [ -z "$VMRSS" ]; then # echo "Error: Could not retrieve VmRSS for PID $PID." # exit 1 # fi # # # Convert to human-readable format (MB) # VMRSS_MB=$(echo "scale=2; $VMRSS / 1024" | bc) # # echo "Process $PID VmRSS: $VMRSS kB ($VMRSS_MB MB)" #!/usr/bin/env bash INTERVAL="${1:-1}" printf "%-8s %-6s %-6s %-10s %s\n" \ "TIME" "PID" "RT" "RSS(MB)" "CMD" while true; do TS=$(date +%H:%M:%S) ps ax -o pid=,comm=,cmd= | awk '$2 ~ /^(node|nodejs|bun)$/ { print }' | \ while read -r PID COMM CMD; do STATUS="/proc/$PID/status" [ ! -r "$STATUS" ] && continue RSS_KB=$(awk '/VmRSS/ {print $2}' "$STATUS") [ -z "$RSS_KB" ] && continue RSS_MB=$(awk "BEGIN { printf \"%.1f\", $RSS_KB/1024 }") RT=$(case "$COMM" in bun*) echo "bun" ;; node*) echo "node" ;; *) echo "js" ;; esac) printf "%-8s %-6s %-6s %-10s %s\n" \ "$TS" "$PID" "$RT" "$RSS_MB" "$CMD" done sleep "$INTERVAL" done