Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!brl-adm!rutgers!clyde!cbatt!cwruecmp!hal!ncoast!tdi2!brandon From: brandon@tdi2.UUCP (Brandon Allbery) Newsgroups: comp.unix.questions,comp.unix.wizards Subject: Multi-Spoolers Message-ID: <126@tdi2.UUCP> Date: Wed, 24-Dec-86 16:19:54 EST Article-I.D.: tdi2.126 Posted: Wed Dec 24 16:19:54 1986 Date-Received: Sat, 27-Dec-86 00:42:02 EST References: <161@ndmath.UUCP> <99@ems.UUCP> Reply-To: brandon@tdi2.UUCP (Brandon Allbery) Followup-To: comp.unix.questions Organization: Tridelta Industries, Inc., Mentor, OH Lines: 52 Xref: mnetor comp.unix.questions:466 comp.unix.wizards:448 Quoted from <99@ems.UUCP> ["Re: Multi-spoolers"], by mark@ems.UUCP (Mark H. Colburn)... +--------------- | In article <161@ndmath.UUCP> milo@ndmath.UUCP (Greg Corson) writes: | >Does anyone out there happen to have any (hopefully free) software that | >allows a single print queue to drive more than one printer at a time? | > | >In other words...I have one print queue and several printers. Whenever | >a printer becomes free I want the next job in the queue to start printing | >on that printer. There might be as many as 3 identical printers on the | >system at one time and I don't want to leave the load-leveling job to | >the users. | | You neglected to say what version of system you are using, but it is possible | to do this kind of spooling using the System V lp spooler. By correctly | specifying printers and classes a user can send to a specific printer, or a | specific class of printers. +--------------- I have (nearly) written a print spooler (destined to be the UNaXcess Spooler) which currently (almost) runs under System V. (I began writing it to solve a perceived problem with the "lp" spooler: it (1) lacks a forms handling feature, and (2) lacks a feature to automatically use the nearest free printer in a class to the person/program doing the spooling.) It is as yet incomplete, but if you need something fast I can send you a shar file of what is written; what needs to be done isn't too much, if you want a "basic spooler" system (parts I haven't started yet are a full pagination system and generic print mode interpreters, but you could probably do without them; so could we). As I said, it's written for sVr2.2; the features specific to sys5 (that I know of) are mainly the spooler control via kill(-(pid_of_spooler), SIGTERM) to inform the spooler and its descendants (de-queuers/print drivers) of changes of state -- pqspool does a setpgrp() and sVr2 has the feature that if you send a signal to the negative of a process group leader's pid (i.e. to -proc.p_pgrp), the signal is sent to all processes in the pgrp. This could probably be removed, most easily by pqspool trapping the signal and forwarding it to all processes in its driver list, since it works rather like a printer "init" process. Yell if you want it. [BTW: other programs I've offered: for some reason, the path from tdi2 to mirror is a "you can't get there from here" affair, and I perfer mod.sources for source postings. HELP!!! I have three programs waiting to go out -- UNaXcess 1.0.1, unisys, and sadp!] ++Brandon -- ``for is he not of the Children of Luthien? Never shall that line fail, though the years may lengthen beyond count.'' --J. R. R. Tolkien Brandon S. Allbery UUCP: cbatt!cwruecmp!ncoast!tdi2!brandon Tridelta Industries, Inc. CSNET: ncoast!allbery@Case 7350 Corporate Blvd. INTERNET: ncoast!allbery%Case.CSNET@relay.CS.NET Mentor, Ohio 44060 PHONE: +1 216 255 1080 (home) +1 216 974 9210