برنامه نویسی

یک اسکریپت پوسته 34 لاینر برای ذخیره بهره وری شما

قاتل بهره وری شماره 1 شما ممکن است در ابزاری که بیشتر از آنها استفاده می کنید قرار دهید: Chrome.

سالهاست که اینگونه بوده است. نشت حافظه اضافه می کند ، مطمئناً در گذشته در مرورگر بسیار زیاد است ، اما تعداد معدودی هنوز در WebApps ضعیف مانند LinkedIn ، Google Cloud Console ، YouTube ، Google Ad Manager ، فقط برای نامگذاری برخی از متخلفین برتر من در لحظه بشر

اگر در لینوکس هستید می تواند دیوانه شود: آخرین بیت رم شما را می خورد ، پس تمام شد: تمام CPU ها شروع به سوزاندن زغال سنگ می کنند ، لپ تاپ شما خاموش می شود ، موش شما به سختی می تواند حرکت کند ، کار شما تمام شده است.

اگر فکر می کردید که چسبانده عالی یا برگه اتومبیل قصد نجات شما را دارد … آرزو می کنم …


سالهاست که من با این شانس نمی جنگم … تا به حال ، پس از یک دور دیگر از بحث و گفتگو با بهترین دوست ما (چتگپ) ، هنگامی که به نظر می رسد در نهایت به یک نقطه عطف رسیده ایم.

این یک اسکریپت کوچک است که به طور دوره ای متخلفان برتر را با مصرف حافظه (در بین فرآیندهای کروم) بررسی می کند و وقتی کمتر از مقدار خاصی از حافظه آزاد وجود داشته باشد ، سعی می کند تا به آرامی اولین مورد را خاتمه دهد. اگر پاسخ ندهد ، فقط در مورد آن با سیگنال کشتن همراه است.

و سرانجام ما می توانیم بدون نیاز به شروع مجدد کل مرورگر یا سیستم هر 2 روز یکبار کار خود را انجام دهیم.

#!/bin/bash

THRESHOLD_MB=1024
CHECK_INTERVAL=20

while true; do
  free_mem=$(free -m | awk '/^Mem:/{print $7}')
  # echo "FREE MEM: ${free_mem}"

  if [ "$free_mem" -lt "$THRESHOLD_MB" ]; then
    # Get the PID of the Chrome tab using the most RAM
    top_pid=$(ps -eo pid,%mem,cmd --sort=-%mem | grep '[c]hrome --type=renderer' | head -n 1 | awk '{print $1}')

    if [ -n "$top_pid" ]; then
      echo "Warning: Low memory ($free_mem MB free). Attempting to terminate Chrome tab with PID $top_pid..."

    # Try graceful termination first
    kill -15 "$top_pid"
    sleep 10  # Give it some time to close

    # Check if process is still running
    if ps -p "$top_pid" > /dev/null; then
      echo "Tab did not close, forcing termination with SIGKILL."
      kill -9 "$top_pid"
    else
      echo "Tab closed successfully."
    fi
  else
    echo "No Chrome tab found to terminate."
    fi
  fi

  sleep "$CHECK_INTERVAL"
done

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شما فقط این اسکریپت را اجرا می کنید و کار می کند. نیازی به شروع کروم با گروههای عجیب و غریب یا مزخرفات دیگر نیست ، بنابراین باید استفاده از آن بسیار آسان باشد.

امیدوارم که کمک کند …

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا