Path: utzoo!attcan!uunet!snorkelwacker!usc!elroy.jpl.nasa.gov!ames!haven!adm!news From: postmaster@sandia.gov (SMTP MAILER) Newsgroups: comp.unix.wizards Subject: Mail Delivery Problem Message-ID: <23547@adm.BRL.MIL> Date: 6 Jun 90 15:41:00 GMT Sender: news@adm.BRL.MIL Lines: 744 ----Reason for mail failure follows---- Sending mail to : Could not be delivered for three days. ----Transcript of message follows---- Date: 3 Jun 90 06:49:00 MDT From: unix-wizards@BRL.MIL Subject: UNIX-WIZARDS Digest V10#049 To: "ckaul" Return-Path: Received: from SEM.BRL.MIL by sandia.gov with SMTP ; Sun, 3 Jun 90 06:30:17 MDT Received: from SEM.BRL.MIL by SEM.BRL.MIL id aa23416; 3 Jun 90 5:52 EDT Received: from sem.brl.mil by SEM.BRL.MIL id aa23376; 3 Jun 90 5:45 EDT Date: Sun, 03 Jun 90 05:45:05 EST From: The Moderator (Mike Muuss) To: UNIX-WIZARDS@BRL.MIL Reply-To: UNIX-WIZARDS@BRL.MIL Subject: UNIX-WIZARDS Digest V10#049 Message-ID: <9006030545.aa23376@SEM.BRL.MIL> UNIX-WIZARDS Digest Sun, 03 Jun 1990 V10#049 Today's Topics: Re: C0WABUNGA!! To which devices does select apply? Re: REVISED: How do I send e-mail to lots of users at a remote unix site? Re: How can a parent find out if one of its children is still alive Re: lpadmin(8) question Re: ksh discriminates background processes Re: SEX! or, how do I mail to a lot of unix users? Re: ksh discriminates background processes Init S on System V 3.2 need help with 'curses' Re: ksh discriminates background processes Lex man page flame (was Re: Lex and initial start conditions) can Sys. V Rel. 3.2 support > 16MB RAM when can only DMA to <= 16MB? Re: can Sys. V Rel. 3.2 support > 16MB RAM when can only DMA to <= 16MB? Re: Removing garbage files time dep login ----------------------------------------------------------------- From: "Gil Pilz@Eng@Banyan" Subject: Re: C0WABUNGA!! Keywords: stuffed-shirt Date: 1 Jun 90 22:44:32 GMT To: unix-wizards@sem.brl.mil In article <574@lad.scs.com> lad@lad.scs.com (Lawrence A. Deleski) writes: > >From article <901508516356BIFF@BIFFVM.BIT.NET>, by BIFF@BIFFVM.BIT.NET (THE >BIFFMAN COMETH): >> HIYA D00DS!! ICUZ MY BBROTHER <--BIG BROTHER, NEET HUH? WUZ BBSITTING ME >AND MY> MOM WULD KILL HIM IF ANYTING HAPENED TO ME. THEES SHUR R >Is there anything we can do about this 'dude'? He's cross-posted to every >damn group he could. I really hate this type of trash. one . . two . . three . . four . . "Lighten up Lawrence !" It's a *joke* son ! Get it !? "when Jim calls out the infantry to save the likes of you and me and planes are falling from they sky then there's no need to wonder why it's BIFF !" Gilbert Pilz Jr. "sick, and proud of it" gil@banyan.com ----------------------------- From: "Aryeh M. Weiss" Subject: To which devices does select apply? Keywords: select pipes Date: 2 Jun 90 13:42:31 GMT To: unix-wizards@sem.brl.mil What devices does select apply? I know select() is designed to be used with serial and event devices, but does it apply to pipes or ordinary files? Under SCO Xenix V/386 R2.3.2 select() *always* indicates data is available from a pipe, including empty pipes. Is there a standard for select()'s behavior on pipes? -- ----------------------------- From: Larry McVoy Subject: Re: REVISED: How do I send e-mail to lots of users at a remote unix site? Date: 31 May 90 19:59:39 GMT Sender: news@sun.eng.sun.com Followup-To: comp.unix.questions To: unix-wizards@sem.brl.mil In article <900531093547.30e0dca3@Csa2.LBL.Gov> thermal%solgel.hepnet@CSA2.LBL.GOV writes: >I would like to be able to send a mail message to all the users on >ANOTHER unix machine via Internet. Of course, I could do it the long >and tedious way, that is, by sending a mail message to each user, one >at a time. Is there a quicker way? (it seems to me there could be two >or three different ways, such as setting up a mailing list file on my >machine which will automatically mail the message to all on the list, >or sending one message to the remote machine and somehow instruct it >to distribute the message to all the users). Obviously, I'm not a >unix guru or wizard, so make your explanation understandable, please. You'll have to get cooperation from the remote machine. Let's assume that you are mailing to a remote machine that runs sendmail. Then you can get the remote admin to edit /etc/aliases and add a line like: kernel: lm,auspex!guy,shannon,limes,glenn,dave@cs.wisc.edu Then if you mail kernel@remote.host.whatever the message will be exploded on remote.host.whatever instead of the local host. You may need to run "newaliases" which massages the alias file into a database that sendmail uses. If you are sending to a remote host that doesn't run sendmail or any other mailer that provides an aliasing service then I don't know what you can do. This message is more appropriate for comp.unix.questions so I've directed follow ups there. --- Larry McVoy, Sun Microsystems (415) 336-7627 ...!sun!lm or lm@sun.com ----------------------------- From: Tom Armistead Subject: Re: How can a parent find out if one of its children is still alive Date: 2 Jun 90 05:14:48 GMT To: unix-wizards@sem.brl.mil In article <30408@cup.portal.com>, DeadHead@cup.portal.com (Bruce M Ong) writes: > I am sure there is a very easy way to do this, but I just havent > figured this one out: > > How can a parent find out if one of its children is still alive > or not without ..... If you have the process id of the child you can use kill(2) to find out if it is still there. i.e.: if( kill( child_pid, 0 ) == -1 ) puts( "The child is dead" ); Signal 0 is called the NULL signal and is used to validate a process id, no signal is actually sent to the destination process. Will this do it for you? Tom -- ------------------------------- {uunet,smu}!sulaco!ozdaltx!toma (Tom Armistead @ Garland, Texas) {uunet,smu}!sulaco!ozdaltx!swsrv1!toma ----------------------------- From: "Conor P. Cahill" Subject: Re: lpadmin(8) question Keywords: lp systemv Date: 2 Jun 90 03:41:51 GMT To: unix-wizards@sem.brl.mil In article <453@van-bc.UUCP> sl@van-bc.UUCP (Stuart Lynne) writes: >In the man page for lpadmin: > > -vdevice ..... Note that there is nothng to stop a system > manager from associating the same device with more > than one printer. > >Does this mean that there is nothing to stop you from doing this so don't do >it? No. What it means is that you can do it, but you must set things up so that they work correctly. This has been used lots of times to have a printer with several kinds of paper that can be loaded and each type of paper will get it's own queue while the device for all of the queues is the same. In this scenario, the system administrator must enable 1 and only 1 of the queues at the same time (hopefully just after he placed the appropriate paper into the printer). -- Conor P. Cahill (703)430-9247 Virtual Technologies, Inc., uunet!virtech!cpcahil 46030 Manekin Plaza, Suite 160 Sterling, VA 22170 ----------------------------- From: Bill Irwin Subject: Re: lpadmin(8) question Keywords: lp systemv Date: 2 Jun 90 10:19:42 GMT Expires: Sender: Followup-To: To: unix-wizards@sem.brl.mil In article <453@van-bc.UUCP> sl@van-bc.UUCP (Stuart Lynne) writes: >Which is what I need to do. I have two different packages that want to >install specialized lp destinations with appropriate filters. Can I install >both and have lp figure out how multiplex the requests for the two >destinations to the one physical printer? > >Or will I have to hack the two interfaces together and add options? > >What I wanted was for file1 to be printed, followed by file2. What I got was >file1 intermingled with file2 being printed. I have had this same problem. I have one printer that is used for four lp destinations. When jobs are queued to two or more of the destinations at the same time, you get garbage. The solution I came up with works very well. It involves adding some lines to the models which will check to see if there is a lock file in place for this physical printer, wait if there is; make a lock file if there isn't; print the job(s); then remove the lock. I have attached excerpts from one of my models. : computer_pr # Looks for print jobs on any printer on the same port as # computer_pr, and waits until there are no jobs before # continuing. # if [ -f /tmp/computer.lock ] then while [ -f /tmp/computer.lock ] do sleep 60 done fi touch /tmp/computer.lock # # Copyright (C) The Santa Cruz Operation, 1985, 1986. # This Module contains Proprietary Information of # The Santa Cruz Operation, Microsoft Corporation # and AT&T, and should be treated as Confidential. # #! computer_pr # Options: lp -ob no banner # . [rest of the standard model here] . . # send the file(s) to the standard out $copies times while [ "$copies" -gt 0 ] do for file do echo -n " 0 6 F66" # Oki 32x codes cat "$file" 2>&1 echo "\f\c" echo -n " 0 6 F66" # Oki 32x codes done copies=`expr $copies - 1` done rm /tmp/computer.lock stty -hupcl 0<&1 exit 0 The only drawback with this approach that I have encountered is when you cancel a print job the lock is not removed. You have to remember to "rm /tmp/computer.lock" after your cancel, otherwise you next jobs will never print. I remember trying to solve this once by trapping the rm lock sequence inside the model, but it didn't work. I would be interested in finding a better solution than this which doesn't force the user to remember to remove a dead lock file. Good luck. -- Bill Irwin - TWG The Westrheim Group - Vancouver, BC, Canada ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ uunet!van-bc!twg!bill (604) 431-9600 (voice) | UNIX Systems Bill.Irwin@twg.bc.ca (604) 431-4629 (fax) | Integration ----------------------------- From: Eduardo Krell Subject: Re: ksh discriminates background processes Keywords: ksh, nice, errr... ugly Date: 2 Jun 90 13:51:16 GMT Sender: netnews@ulysses.att.com To: unix-wizards@sem.brl.mil In article siebren@cwi.nl (Siebren van der Zee) writes: >Does anybody know why the new Korn shell lowers the priority >of background processes? Because you have the "bgnice" option on. Type "set -o" and you'll see a line that says bgnice off This is the default behavior. If you want this changed, add "set +o bgnice" to your ENV file. Eduardo Krell AT&T Bell Laboratories, Murray Hill, NJ UUCP: {att,decvax,ucbvax}!ulysses!ekrell Internet: ekrell@ulysses.att.com ----------------------------- From: "Jay A. Konigsberg" Subject: Re: SEX! or, how do I mail to a lot of unix users? Date: 2 Jun 90 07:58:42 GMT To: unix-wizards@sem.brl.mil In article <900531083151.30e0b91a@Csa2.LBL.Gov> thermal%solgel.hepnet@CSA2.LBL.GOV writes: >I would like to be able to send a mail message to all the users on >a unix machine. Of course, I could do it the long way, that is, >do a 'finger' or 'who', thus getting a list of all the users, and >then sending a mail message to each, one at a time. Is there a >quicker way? (it seems to me there could be two or three different >ways, such as setting up a mailing list, or some nifty command that >will do this on one stroke of the finger). Obviously, I'm not a >unix guru or wizard, so make your explanation understandable, please. > >Thanks, Dana Write a shell script named "mall" (mail all - but I love the name). It scans the /etc/passwd file and extracts those login names with UID >= 100. You can also have an optional filename with the login names you want the message sent to. One note: doing this will probably mean that some of the mail will sit unread in /usr/mail (or /usr/spool/mail), so be careful how you write it. Accuctally, someone out there might have already written it. ----------------------------- From: Eduardo Krell Subject: Re: ksh discriminates background processes Keywords: ksh, nice, errr... ugly Date: 2 Jun 90 16:49:52 GMT Sender: netnews@ulysses.att.com To: unix-wizards@sem.brl.mil In article <13051@ulysses.att.com> I said: >bgnice off > >This is the default behavior. Oops. The default bgnice behavior is "on". I copied the above from my shell output where I turn it off. Eduardo Krell AT&T Bell Laboratories, Murray Hill, NJ UUCP: {att,decvax,ucbvax}!ulysses!ekrell Internet: ekrell@ulysses.att.com ----------------------------- From: Marc Wiz Subject: Init S on System V 3.2 Keywords: init single user mode Date: 1 Jun 90 22:25:07 GMT To: unix-wizards@sem.brl.mil I and another engineer here are in need of some net wisdom. Here's the problem: on system V 3.2 performing an init S puts the system into single user mode. It also makes the terminal that executed the init S the system console. Also according to the man page init(1M), all mounted file systems are left mounted and only processes spawned by init are killed. What the man page and documentation does not say is that any processes i.e. daemons that were created via script files in /etc/rc* are still running. Which means that if you perform an init 2 from this state then there will be two copies of every daemon running. Obviously this is not a desire- able state! :-) The easy thing to do is just perform an init 6 which will reboot the system. In the interests of getting the system back up to multi-user mode in the shortest time, the ideal would be the init 2. What can we do to go back to run state 2 without rebooting? And is this a bug or a feature? Thanks in advance for the help. Marc -- : Marc Wiz : : Yes, that really is my last name. MAI Basic Four, Inc. : : Tustin, CA 92680 : : UUCP:sun!sequent!mbf!wizm Ma Bell:1-714-730-2602 : : uunet!ccicpg!mbf!wizm : ----------------------------- From: Quan Tang Subject: need help with 'curses' Date: 2 Jun 90 18:45:25 GMT Sender: news@bikini.cis.ufl.edu To: unix-wizards@sem.brl.mil I am going to use 'curses', but I have no references except man pages, I will appreciate it very much if any unix expert send me some information about it including your experience. ----------------------------- From: carl brandauer Subject: Re: ksh discriminates background processes Keywords: ksh, nice, errr... ugly Date: 2 Jun 90 19:40:39 GMT To: unix-wizards@sem.brl.mil every shell i have used in the last 13 years has lowered the priority of background processes - makes sense to me ----------------------------- From: Martin Weitzel Subject: Lex man page flame (was Re: Lex and initial start conditions) Date: 2 Jun 90 13:11:14 GMT Posted: Sat Jun 2 14:11:14 1990 To: unix-wizards@sem.brl.mil In article <116@bohra.cpg.oz> ejp@bohra.cpg.oz.au (Esmond Pitt) writes: >In article <1990May30.174745.1161@csrd.uiuc.edu> pommu@iis.ethz.ch (Claude Pommerell) writes: >> [about changing start conditions at entry to yylex()] > >There are two even simpler ways. `Simpler' mostly depends on your view and expectations ... > >Instead of effectively changing the initial condition to , either: > >1. Ensure each start-state is equipped with enough rules to handle any >possible input, and, as the documentation does state, place all the >unlabelled rules after all the labelled rules, and/or Sounds not simpler to me. > >2. Label all the rules you only want applied in the INITAL state with >, so they won't be applied as defaults in other states. This trades off one undocumented feature (stuff *after* the first '%%' line and *before* the first rule) against another undocumented feature. But to be fair: Strictly following some man pages for lex nearly every a nontrivial lex applications would use some undocumented feautures. I just looked up for the purpose of writing this: 1.) SVID (1986) 2.) XPG3 (1989) 3.) ISC Programmers Reference Manual 4.) ISC Programmers Guide (1988) .FLAME ON Not any single mentioning of start conditions in (4) at all (neither the syntax in rules, nor the special action BEGIN). Worse in some example the the advice is for a lex program to #define BEGIN 1 (believe it or not) as a `good programming style' for returning tokens. This finally reveals that the author can have never heard something about start conditions. The example of the lex program has a line: begin return (BEGIN); Please ISC, could you send the person who has written this guide to a lex+yacc course (BTW: I'm teaching some :-)) before a revised version is produced. Well, there is mentioned that yacc contains a feature to supply token-defines, but it's bad practice to give advices that turn out to be not only unnecessary, but dangerous too. The only advice in this guide that isn't near to worthless is to look into the paper about Lex written by Mike Lesk. (You were better advised printing this paper in the guide than the section that's in by now.) An other advice there is to check out the reference manual (3). Be aware: IF YOU TRY TO USE LEX WITH THIS REFERENCE, YOU WILL BE ABSOLUTELY LOST. (Better save your time trying, rather end work soon, go out and have a nice evening - or, again, look for the Lesk-paper.) Ehhm, we are talking about start conditions. The reference manual is *very* silent about them - in fact no mentioning. On the other hand: The author was quite careful to mention, that the "-r option is not yet fully operational". (What this option tells is that lex should produce RATFOR source instead of C. Oh, how many times I needed that an wondered why it just didn't "fully" work - but good news, not "yet", that is, the day will come when I finally can switch from C to RATFOR :-).) But before we beat ISC too much: I suppose they took what they got from somewhere (AT&T?) and only made it a little worse. Let's look at (1) - and don't say a reference dated from 1986 is too old today: The stuff we are talking about is *much* longer in lex. SVID does the good job of printing a table which shows the regular expression syntax for lex rules (it's quite similar as the "extended regular expressions" of egrep and awk, but there are some differences). In this table you'll find the syntax of start conditions, but not the least mentioning of them and BEGIN in the rest of the text. So, if you read the table you probably think you must be stupid, if you don't know lex and hence you don't understand what r the occurence of the regular expression r only when the program is in start condition (state) s shall tell you. (Again, start conditions or states and the special action BEGIN is not mentioned anywhere else in the section). Finally to (2), which seems a not so bad re-work of the SVID in other areas. A quick scan thru the lex section reveals that it is quite similar to (1), but the table with the regular expression syntax is ommitted in favor of a difference list to extended regular expressions. (BTW: The difference list is not complete.) The same sentence concerning the r-Syntax as in (1) appears but again nothing about start conditions, states, and BEGIN in the rest of the section. .FLAME OFF Hello AT&T, anybody listening: If you haven't revised the manuals recently, please do a complete rewrite of the lex section but find somebody as author who has sufficient experience with lex+yacc in non-trivial applications *and* who can explain understandable to mortals. (From many publications I know such people are working at AT&T - I'm volunteering doing a proof-read.) > >Placing non-labelled rules before labelled rules is probably the single >most common error in writing LEX scripts, even after 15 years. > >I don't know why. After reading the above, you probably know why many novices struggle with lex. Concerning your the problem, here are the THREE BIG DISAMBIGUATING RULES 1) leftmost 2) longer 3) first in source which tells us: Take the input stream and write it down in one line from left to right: Then, in case two rules might match some part of the input stream, lex chooses the rule that matches more to the left, that matches the longer regular expression or that matches the regular expression which appears first in (lex) source, with (1) having higher priority than (2) having higher priority than (3). This is well choosen, because it enables us to do the following: "if" { ... action for keyword if ... } [a-z]+ { ... action for identifier ... } which triggers the second for " fif " (because of 1), as well as for " iff " (because of 2), but the first for " if " (because of 3). Start conditions are no exceptions from this rule! -- Martin Weitzel, email: martin@mwtech.UUCP, voice: 49-(0)6151-6 56 83 ----------------------------- From: Scott Weikart Subject: can Sys. V Rel. 3.2 support > 16MB RAM when can only DMA to <= 16MB? Date: 3 Jun 90 00:56:39 GMT To: unix-wizards@sem.brl.mil First, some details for those of you who are interested in IBM PC/AT compatible, Intel 80386-based computers. I'm trying to use more than 16MB of main memory on an AT/386 running Interactive 386/ix 2.0.2 (V.3.2). I'm using the latet Chantal SCSI driver with the Adaptec AHA1542 SCSI host adapter. The AHA1542 has an on-board DMA for doing data transfers; since it uses the AT bus, it only works with 24 bits of address, i.e. it can access at most 16MB of memory. But I'd like to buy a motherboard that will hold 32MB of memory, because I'm starting to thrash. So, my machine would have more than 16MB of memory, but the DMA on my disk controller will access at most 16MB of memory. How can I make this work? I have two ideas on how to do this. One is to only use block devices on the local machine (so that all disk DMA is done to the disk cache, which is always in low memory), and put raw devices on remote machines accessible via RFS over ethernet. Although tty devices are raw, they always do their transfers to kernel buffers as near as I can figure. I'd put my tape devices on remote machines. The tricky part is the swap device; although it's a block device, it does transfers directly into user space without going through the disk cache [acording to Bach]. To get a swap device, I'd remote mount a disk partition from another machine using RFS: I would boot the machine with a local swap region, then start up RFS, then mount an unused partition from a remote machine, then use /etc/swap to setup the remote partition as a swap device, then use /etc/swap to delete the partitin on the local machine. Note that I'm not too worried about performance loss from swapping/paging across ethernet, because I'll be reducing swap/page activity drastically by doubling the amount of RAM available. But can V.3.2 handle a swap partition on a remote machine? The second idea is to use a feature that's (maybe) specific to V/386. There's a file /etc/default/boot that contains boot time parameters (described by boot(1)). The MEMRANGE parameter lets you specify a number of different ranges of physical address space where RAM can found; for each range of address space, you can specify whether or not DMA accesses work to this range. If I specify not to use DMA for memory above 16MB, will all my problems be magically solved? If so, how is it done? For example, Bach says that when swapping a process the whole process is stored in contiguous sectors of the swap device; will the kernel grab some blocks from the disk cache and do the swapping in chunks, using the disk cache blocks as the DMA-accessible intermediary? And will the kernel do all the chunking with disk cache blocks transparently to the disk driver, or will the driver have to get the MEMRANGE parameters and do its own special tricks for transferring into memory where DMA can't work? Any other ideas on how to handle this problem? Please send me comments in email, since I din't normally read these newsgroups. I'll post any feedback I receive. -- Scott Weikart Community Data Processing (415)322-9069 weikart@arisia.xerox.com pyramid!cdp!scott ----------------------------- From: Scott Weikart Subject: Re: can Sys. V Rel. 3.2 support > 16MB RAM when can only DMA to <= 16MB? Date: 3 Jun 90 02:46:41 GMT To: unix-wizards@sem.brl.mil In article <9628@arisia.Xerox.COM>, weikart@arisia.Xerox.COM (Scott Weikart) writes: > > But can V.3.2 handle a swap partition on a > remote machine? I just read the "386/ix Network Connections Facilities Release Notes - Release 2.0". The next to last item in the list of bugs is "Swap devices cannot be remote...". So much for that idea. How about my other idea: will the kernel support the MEMRANGE no-DMA parameter in /etc/default/boot without any assistance from the disk driver? -- Scott Weikart Community Data Processing (415)322-9069 weikart@arisia.xerox.com pyramid!cdp!scott ----------------------------- From: Ronald Pikkert Subject: Re: Removing garbage files Date: 2 Jun 90 21:00:53 GMT To: unix-wizards@sem.brl.mil From article <156@TWG.UUCP>, by bill@TWG.UUCP (Bill Irwin): > Here is one that has got me beat, frustrated and down right angry. I > have some files in a directory that I can't remove. Your shell probably strips the high order bit which causes rm to be unable to delete these files. You can remove them using a c-program. I wrote a shell script that creates a c-program that does the job: ------------------- cut here ------------------ echo "main() {" ls -b | sed 's/\(\\\)\([^0]\)/\10\2/g s/\\$/\\\\/ s/"/\\"/g s/^/unlink(\"/ s/$/");/ ' echo "}" ------------------- cut here ------------------ Run this script in the directory and it will generate a program dl.c Compile the program (cc dl.c -o dl). The run ./dl and there will be no need to reformat your anymore disk :-) - Ronald Pikkert E-mail: ronald@atcmp.nl @ AT Computing b.v. Tel: 080 - 566880 Toernooiveld 6525 ED Nijmegen ----------------------------- From: George Bron Faison Subject: time dep login Date: 3 Jun 90 04:36:09 GMT To: unix-wizards@sem.brl.mil 9A couple of ideas you might puruse... Placing a program in passwd in place of /bin/sh to check the time and display a nice message (vs. just failing as some of the other suggestions imply) if your user is out of his time limits; or to invoke a login sh if he/she is within time bounds, etc. If you have more than one user to monitor, maybe something invoked by /etc/profile? If your user is "tied" to s specific port, an alternate getty with the appropriate code might suffice? (Or use inittab to "close" that port?) If YOU control the ".profile" for your users, you could do it there also (you can also handle this by having user log into a common directory for processing before being switched to their HOME directories). I'm sure there are lots of other ways, too. George "Bron" Faison Modern Office Systems Technology, Inc. (804) 730-1467 or Bron@cup.portal.com or 6006-B Mechanicsville 'Pike, Mech. VA. 23111 ----------------------------- End of UNIX-WIZARDS Digest **************************