home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / protocol / appletal / 3117 < prev    next >
Encoding:
Text File  |  1992-08-18  |  3.9 KB  |  118 lines

  1. Newsgroups: comp.protocols.appletalk
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!caen!umeecs!umn.edu!noc.msc.net!uc.msc.edu!apctrc!wsc!calw0148!zanm03
  3. From: zanm03@cal.amoco.com (Anthony Mutiso)
  4. Subject: Re: How to kill CAP programs cleanly?
  5. In-Reply-To: syen@jupiter.seas.upenn.edu's message of 12 Aug 92 16: 56:57 GMT
  6. Message-ID: <ZANM03.92Aug18080548@calw0057.cal.amoco.com>
  7. Sender: news@cal.amoco.com
  8. Reply-To: anmutiso@cal.amoco.com
  9. Organization: Decision Support Group/Amoco Canada
  10. X-Zippy: Awright, which one of you hid my PENIS ENVY?
  11. References: <85996@netnews.upenn.edu>
  12. Date: Tue, 18 Aug 1992 15:05:48 GMT
  13. Lines: 103
  14.  
  15. >>>>> On 12 Aug 92 16:56:57 GMT, syen@jupiter.seas.upenn.edu (Shih-Cheng Yen) said:
  16.  
  17. Shih-Cheng> Hi! How do I kill lwsrv and aufs jobs cleanly? Even after
  18. Shih-Cheng> doing kill -9 <process id> I still see the laserprinter
  19. Shih-Cheng> and appleshare server on the AppleTalk zone. Doing ps -x
  20. Shih-Cheng> lists no other processes on the Unix side. When I try to
  21. Shih-Cheng> access them from the Mac, the message says that they are
  22. Shih-Cheng> no responding. The only way we have been able to remove
  23. Shih-Cheng> the entries is to shut down the SUN. I have had to use
  24. Shih-Cheng> different names everytime I start up aufs as I don't seem
  25. Shih-Cheng> to be able to get aufs running with the same name.
  26.  
  27. The following two scripts may be of some help.
  28.  
  29. list-cap-services
  30. -------------------------------
  31. #! /bin/sh
  32.  
  33. # list all cap services running on this host
  34. # usage: list-cap-services [-s]
  35. # the -s options is for a short list with out the command line options.
  36. #
  37. # Copyright: Anthony Mutiso (May be freely distributed and altered).
  38. #
  39. progname=`basename $0`
  40. timestamp=`date`
  41. CAP=/usr/local/lib/cap
  42. BIN=${CAP}/bin
  43. LIB=${CAP}/lib
  44. HOSTNAME=`hostname`
  45. EXP='atis|aarpd|uab|snitch|aufs|lwsrv|timelord'
  46. shortlist=0
  47.  
  48. if [ $# -gt 0 ]; then
  49.    if [ "$1" = "-s" ]; then shortlist=1; fi
  50. fi
  51.  
  52. if [ $shortlist -eq 1 ]; then
  53.    ps -axwwww | grep $BIN | egrep -v $progname'|grep|sed' | colrm 7 20 | sed -e s:$BIN/:: -e 's: -.*$::'
  54. else
  55.    ps -axwwww | grep $BIN | egrep -v $progname'|grep|sed' | colrm 7 20 | sed -e s:$CAP:'<capdir>':g
  56. fi
  57. -------------------------------
  58. kill-cap-services
  59. -------------------------------
  60. #! /usr/local/bin/perl
  61.  
  62. #
  63. # Copyright: Anthony Mutiso (May be freely distributed and altered).
  64. #
  65. # kill all cap services running on this host
  66. # usage: kill-cap-services [aservice,...]
  67. split(m|/|,$0); $progname = $_[$#_];
  68. chop($localhost = `hostname`);
  69.  
  70. $CAP="/usr/local/lib/cap";
  71. $ETC="$CAP/etc";
  72. $BIN="$CAP/bin";
  73. $list="$ETC/list-cap-services";
  74. $serviceregexp='atis|uab|snitch|aarpd|lwsrv|aufs|timelord';
  75.  
  76. $serviceregexp = join('|',split(/[,|]+/,join(',',@ARGV))) if ($#ARGV ge 0);
  77. open (LIST, "$list |") || die "$progname: <error> could not execute $list\n";
  78. while (<LIST>) {
  79.     local (@service);
  80.     chop;
  81. #    printf "DB: line: [%s]\n",$_;
  82.     m:^\s*(\d+)\s+.*/bin/(\w+)\s+(.*)$: && do {
  83.     $service[0] = $1; $service[1] = $2; $service[2] = $3;
  84.     };
  85. #    printf "DB: service: [%s]\n",join(":",@service);
  86.     next unless ($service[1] =~ m:$serviceregexp:);
  87.     if ($service[1] =~ m:atis|uab:) {
  88.     printf "%s: sending %s (%d) a %s (%d) signal.\n",$progname,$service[1],$service[0],"SIGTERM",15;
  89.        kill 15, $service[0];
  90.     } elsif ($service[1] =~ m:snitch|aarpd|lwsrv|timelord:) {
  91.     printf "%s: sending %s (%d) a %s (%d) signal.\n",$progname,$service[1],$service[0],"SIGQUIT",3;
  92.        kill 3, $service[0];
  93.     } elsif ($service[1] =~ m:aufs:) {
  94.     printf "%s: sending %s (%d) a %s (%d) signal.\n",$progname,$service[1],$service[0],"SIGHUP",1;
  95.     kill 1, $service[0];
  96.     } else {
  97.     printf "%s: unknown cap service <%s> (skipped).\n",$progname,$service[1];
  98.     }
  99. }
  100.  
  101. # done
  102.  
  103. # Local Variables: #
  104. # mode: perl #
  105. # End: #
  106. -------------------------------
  107.  
  108. You need to alter the value of BIN to point to your cap bin dir.
  109. Note one of the scripts is a perl script.
  110.  
  111. Disclaimer: These scripts are offered as is.
  112.  
  113. Anthony
  114. --
  115. Anthony Mutiso (anmutiso@cal.amoco.com)               Life-motto: Logic Rules.
  116.  
  117.  
  118.