2021-02-06
Talkd and 'mesg n': a story from the old Unix days
An ancient Unix habit: I often still reflexively run 'mesg n' on my (single-user) workstation before starting screen, even though it's been a very long time since I ran talkd and so had any worries about that.
Back in the old days of Unix there was a program called talk
,
which actually made it into the POSIX standard
(which I was surprised to discover just now). Talk enabled live two
way communication, instead of the one way communication of write
(which is also a POSIX standard command), but the relevant thing
about it was that it generally worked through a daemon, talkd
.
Your Unix server ran talkd
, and when you ran talk
it communicated
with talkd
to notify the person you wanted to talk to and then
let them connect with you.
Back in the days, this communication was done over IP, not (say)
Unix domain sockets. Since it was the old days of a trusting network
environment, your talkd
would accept requests from everyone, not
just the local machine (and talk
would chat across the network),
letting anyone on your local network or often the entire Internet
try to start up a talk
session with you. This meant that even on
a single user workstation, there was a reason to run 'mesg n
' to
avoid having random talk
notifications overwrite screen
's output
and interfere with it.
(On a multi-user machine, other people on the same machine might try to
write
to you and you'd want to keep that from interfering with your
screen
session. This isn't an issue on a single user workstation.)
It's been a very long time since my workstation ran talkd
, even for
requests from the local network. But my reflexes still want to run that
'mesg n
' before I start screen
.
(I didn't put 'mesg n
' in my shell .profile for what is ultimately
fuzzy reasons.)