یک اسکریپت پوسته 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
شما فقط این اسکریپت را اجرا می کنید و کار می کند. نیازی به شروع کروم با گروههای عجیب و غریب یا مزخرفات دیگر نیست ، بنابراین باید استفاده از آن بسیار آسان باشد.
امیدوارم که کمک کند …