Quote:
Originally Posted by
davinccy
I am not very familiar with print services and all. I wanna ask whether this lpd protocol thingy affects anything?
LOL!
Yes, it does and this is probably one of the reasons your new server doesn't print anything.
"lpd" is short for "line printer daemon" and the name is pretty intuitive.
Consider a network communication via telnet: there is a specific protocol and a designated port for it to operate (have a look in "/etc/services"). The protocol is like a common language. You also need a client and a server both speaking this protocol. The client is called "telnet" too and issuing "telnet foo" on the system "bar" will call this client and have it try to initiate a communication with the system "foo". To be successful on system "foo" there has to run a "daemon" listening on the designated port for clients requesting its services. The daemon is called "telnetd" and steered by a super-daemon called "inetd" (I[nter]net-daemon).
The communication between printers and systems offering print queues ("print servers") is similar, just the protocol is different: lpdp instead of telnet. It operates on port 515 (again: have a look in "/etc/services").
You put a print job into a queue with the "lpr" (line printer remote) utility. The printing system puts it into the queue until the necessary server becomes available for it (spooling). In fact this step just means to maintain a directory with waiting print jobs - simply files waiting to be dumped into a printer. You can find these files somewhere under "/var", probably "/var/spool/lp" or something such (i am not too knowledgeable in Solaris, but somewhere in this vicinity you will find the jobs).
Once a printer says it is ready to accept files this job file is being sent to it using the client and server part of the lpd. The print server maintaining the queue acts as a lient, the printer hardware as the server: commonly a printer just prints, a network printer has a network card built in with a lpd running on top of its hardware. This lpd is the "server" for the job.
You can test this (at least with the common HP printers using JetDirect cards) by issuing "telnet <printer-ip> 515" on the command line. You will get a banner saying "HP Jetdirect" and some diagnostic information before it says "connection closed" - of course. "telnet" speaks another protocol and can't really answer the requests of a lpd server, but it is enough to get this banner information sent before the processes recognize they don't share a common language.
Once the job is sent to the printer (more correctly: to its network card) and the lpd running there acknowledges the job being processed (this doesn't necessarily have to mean the file is completely or even in parts printed - it just says the server doesn't have to feel responsible for it any more) the print server clears the job from the queue. That is all.
PS:
literature pointers
see RFC 1179 for the exact definition of the standard.
search for "Berkeley Printing System" (that's the name of the whole system) for manuals, documents, etc..
I hope this helps.
bakunin