My previous reply doesn't seem to have made it to the list.
I proposed the following algorithm for oem situation.
Igonoring process 1, give "death points" to each process, for the following
attributes.
X points for every page rss
-Y points for every second of execution time
Z points for not having uid=0
Z/2 points for not having euid=0
The process with the biggest score gets killed.
The important processes, tend to be:
owned by root
old (started at boot).
The factors X,Y,Z should be settable via /proc, for those that always work
as root, the might set Z very small. If the above tends to kill the Xserver,
setting X smaller, and Y larger will always kill a younger process and protect
the system daemons and server (which is always older than the first X app).
Setting X,Y,Z above you can get the BSD, or SunOS behaviour.
There might me other factors to include, but they don't occur to me at the
moment.
I think the above is a solution in the spirit of linux. If we use a fixed
set of rules to kill a process, somebody will always be able to produce a
situation that kills an important process. Let them change the weighting.
Jon.
-- Jon. <jon@gte.esi.us.es, http://www.esi.us.es/~jon>