Hello, I had you followed a bug reported by a Ubuntu user [1] about "nice value" change:
According to "man nice" and "info coreutils nice", it is not possible for a non-root user to decrease the niceness of a process (even if they were the ones that increased the niceness). However this not the case in Ubuntu 9.04, as evidenced by the fact that the attached script "stopfirefox" can reduce the niceness back to 0 when firefox is unminimized. The manpage and infopage should be modified in light of this, and should also say where this was configured. According to http://en.wikipedia.org/wiki/Nice_%28Unix%29#cite_note-0 This can be configured in /etc/security/limits.conf, however this does not seem to have any uncommented lines, so presumably Ubuntu configured this somewhere else. ProblemType: Bug Architecture: amd64 DistroRelease: Ubuntu 9.04 NonfreeKernelModules: fglrx PackageArchitecture: all ProcEnviron: SHELL=/bin/bash PATH=(custom, user) LANG=en_AU.UTF-8 Uname: Linux 2.6.28-14-generic x86_64 I think that add a reference to talk about /etc/security/limits.conf is a good idea. [1] https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/468518 Regards, -- Stéphane Aulery
#!/bin/sh # # A simple shell script to stop Firefox using CPU and paging in RAM # # John C. McCabe-Dansted, 2009 # Permission is given to use this file under any version of the GPL or LGPL. # # Bugs: 1) Only checks if one Firefox window is minimised, others may be # unminimized, but this will still leave Firefox halted and unresponsive # until the window this is actually checking is unminimized # # 2) Do not minimize Firefox while downloading, or the download will # time out. # # 3) This script itself will use a tiny bit of CPU and RAM while polling # xwininfo to determine whether Firefox is minimised. You may want to tune # DELAY. Note that Firefox will be unresponsive for up to DELAY seconds # after being unminimised. DELAY=1 # in seconds main () { WinID=$1 PID=$3 echo WinID: $WinID echo PID: $PID set_running () { if [ "$active" = "yes" ] then kill -s CONT $PID else kill -s STOP $PID fi } set_nice () { if [ "$active" = "yes" ] then renice +0 $PID else renice +19 $PID fi } kill -s CONT $PID running=yes while true do if xwininfo -id $WinID | grep 'Map State: IsUnMapped' > /dev/null then #Minimized active=no else active=yes fi if [ "$active" = no ] then sleep 0.1 kill -s STOP $PID sleep 0.5 if ! kill -s CONT $PID then exit fi else sleep $DELAY fi #echo $active if [ ! "$running" = "$active" ] then set_nice running="$active" fi done } main `wmctrl -l -p | grep " - Mozilla Firefox$"`