This article is from a FAQ concerning SCO operating
systems. While some of the information may be applicable to any OS,
or any Unix or Linux OS, it may be specific to SCO Xenix, Open
There is lots of Linux, Mac OS X and general Unix info elsewhere on
this site: Search this site is the best
way to find anything.
This is an ancient post with no relevance to modern systems.
The desire to do this DOES pop up now and then on the web, but so far I've seen no answer for Linux (other than portservers, see below). If you know of anything, do let me know.
Conceptually, it shouldn't be hard: just attach to the desired tty. But I
haven't seen anything that does this.
I'm going to bump this post to make it new in hopes of someone adding
A new "recon" command in OpenServer 5.0.6 allows this. See
The new "recon" in 5.0.6 does allow you to specify at tty
device- as long as something else isn't already using it. I'm not
sure that's partucularly useful though.
recon -l -p /dev/ttyp43 /bin/sh
will attach you to ttyp43 if it's available. You'll execute
.profile again (recon is smart enough not to run again if you had
it in your .profile) and although "tty" now reports ttyp43, "who"
still shows whatever you got originally.
You can also do this with terminal servers; see for example
Bob Rasmussen of Anzio posted this in comp.unix.sco.misc:
On Tue, 15 Jan 2002, Joe wrote:
> Is there anyway to make sure a telnet client always gets the same TTY
> assignment when logging into a UNIX host? We have an application that
> assigns printers to hosts based on their TTY assignment. This is fine with
> terminals, but now we have PC's in place of terminals using TELNET, its
> giving the telnet sessions the next available TTY, thus screwing up printer
I don't know of a way to to make sure a particular telnet client always gets
the same TTY device. But there are other ways to solve your problem. Here are
some possibilities to consider, dependent of course on the capabilities of
your telnet client. Keep in mind that in some cases you may want to have
multiple telnet sessions coming from one PC, and that may affect your choice
of methods. In no particular order:
1) ANSWERBACK: Most terminal models allow an answerback string to be
programmed in. The server can then query for this string. An advantage of this
approach is that it will work with dumb terminals as well as emulators.
2) ENVIRONMENT VARIABLES: An element of the telnet protocol (and also the SSH
protocol) is the passing of environment variables. You would configure your
telnet client with, for instance, "PRINTER=PRT25". This would get passed to
the shell session at login. Note that some telnet daemons disallow most
environment variables, except TERM, DISPLAY, and possibly PRINTER. I'm not
sure about SCO's approach here.
3) CREATIVE USE OF TERM: Because of restrictions just mentioned, some folks
have forced their telnet clients to send a terminal-type environment variable
containing both the terminal type info and also a location code. For instance,
"TERM=scoansi:PRT25". The .profile or other shell script then parses this,
resets the TERM variable, and also sets a location or printer variable.
4) IP ADDRESS: If your client PCs are using static IP addresses, you can
determine the IP address and base the printer assignment on that.
5) PASSTHROUGH PRINT: Send the print job back through the terminal session,
and from there to the printer. Yes, this can work quite well; we have hundreds
of people doing it, probably thousands.
6) FOLLOW-ME PRINTING: Print jobs are sent to either an LPD or a JetDirect
emulator at the same IP address as the telnet session is coming from; that is,
to the same PC. Our Print Wizard utility can do this.
7) ARBITRARY CLIENT RESPONSE: If you know at the host level that a particular
telnet client is running, there may be a way the host can query the client
using a proprietary feature. For instance, with Anzio (our telnet client), the
host can ask for the contents of a particular environment variable or
internal variable, such as the Windows machine name, the Windows login name,
or an arbitrary user-defined variable. This avoids restrictions imposed by the
....Bob Rasmussen, President, Rasmussen Software, Inc.
personal e-mail: [email protected]
company e-mail: [email protected]
voice: (US) 503-624-0360 (9:00-6:00 Pacific Time)
fax: (US) 503-624-0760
Anzio makes VirtPort, which could solve this in some cases.
John Dubois said:
In 5.0.7, telnetd has a -r option that lets you `specify the pty or
pty range that it will use. This lets you run a separate telnetd
on a different port that gets a specific pty. If you log in
by connecting to that port, you will always get the same pty
Got something to add? Send me email.
Increase ad revenue 50-250% with Ezoic
More Articles by Anthony Lawrence
Find me on Google+
© 2013-07-18 Anthony Lawrence