You are not logged in.
Pages: 1
Topic closed
Hi. tumblerd keeps sucking up resources and freezing up my system because I have a file manager open containing a huge tif file. I do
pkill tumblerd
and it kills it and I recover my ram and cpu and everything works good. But it seems like any time I do ANYTHING, tumblerd comes back. How do I kill it for the remainder of my session?
Offline
here's a script for a work around...get the word out on this one. It really works. Copy. and paste it into a blank file, make it executable, and set it up to run at system start up. You'll be able to keep tumblerd without the headaches.
#!/bin/bash
# Tumblerdwatcher v 1.0
# Script to check and kill tumblerd process if a loop is suspected. To be automatically scheduled at user session start.
# Homemade workaround for bug: http://forums.linuxmint.com/viewtopic.p … rd#p554241
# The author has no responsibility for the execution. Feel free to distribute and modify it.
# Advice are welcome to rs2809@yahoo.it.
period=60 # check period (sec)
process="/usr/lib/i386-linux-gnu/tumbler-1/tumblerd" # tumblerd binary path
Pcpu=20 # tolerated cpu usage (%)
Pmem=25 # tolerated memory usage (%)
mountpath="/media" # automatic mount point for removable storage
sec=10 # time limit (sec) for opened file at $mountpath for thumbnail generation
sg="-15" # process termination signal (-15 is OK)
logpath="/tmp/Tumblerdwatcher.log" # log path
cat /dev/null > $logpath
exec >$logpath 2>&1
# reset log file
while true
# execute endlessly
do
sleep $period
# wait a set period of time
[[ `ps -ef | grep $process | grep -v 'grep' | wc -l` -eq 0 ]] && continue
# skip to next period if not executing
ps -eo pcpu,pid,pmem,args | grep $process | grep -v 'grep' | while read dpcpu pid dpmem
# catch proccess id, cpu usage and memory usage
do
pcpu=`echo $dpcpu | cut -d'.' -f1`
pmem=`echo $dpmem | cut -d'.' -f1`
[[ $pcpu -gt $Pcpu ]] || [[ $pmem -gt $Pmem ]] && kill $sg $pid && echo "`date` PID $pid $pcpu/$Pcpu %cpu $pmem/$Pmem %mem" && continue
# if cpu usage or memory usage exceed, kill it and report values in the log file
[[ `lsof -p $pid | grep $mountpath | wc -l` -eq 0 ]] && continue
# if no opened file by tumblerd at removable storage mountpoint, skip to next period
lsof -p $pid | grep $mountpath | tr -s ' ' | cut -d' ' -f9 > /tmp/tumblerd.lsof.old
# list opened files
sleep $sec
# wait for tolerated time limit
[[ `lsof -p $pid | grep $mountpath | wc -l` -eq 0 ]] && continue
# if no more opened file skip to next period
lsof -p $pid | grep $mountpath | tr -s ' ' | cut -d' ' -f9 > /tmp/tumblerd.lsof.new
# list opened files again
for opened_file in `cat /tmp/tumblerd.lsof.old`
# if some file was open before....
do
grep $opened_file /tmp/tumblerd.lsof.new && kill $sg $pid && echo "`date` PID $pid ^^^^^^^^^^^^^^^^^^^^^^^^" && continue
# ...and it's still hung open, kill tumblerd
done
done
done
If you can't be helpful, don't say anything at all. Fair enough?
Offline
Please use code tags when pasting to the boards: https://wiki.archlinux.org/index.php/Fo … s_and_Code
And there is no need to crosspost and necrobump: https://wiki.archlinux.org/index.php/Fo … Bumping.27
Closing
Offline
Pages: 1
Topic closed