11-19-2002
In the old days, we had directly attached dumb terminals that we used. A program called getty would initialize the port, print a login prompt and read a login name. If that read ever succeded, it would exec login which would get your password and then then exec your shell. When your shell exited, init would notice and respawn a new getty.
The getty program would clear out a utmp entry. The login program would put the user's info in the utmp entry.
So you never had these leftovers. If the system rebooted or if if your shell died, a new getty would come along and clear out the utmp entry.
Then came networks. Now we have telnetd (or something similiar) that creates the utmp entry and then forks and exec's login. The telnetd, besides handling the communication, is waiting for the shell to exit. When it does, telnetd will clear out that utmp entry.
But if the telnetd is killed with -9 or if the system reboots unexpectedly with users still logged in, the entry in utmp persists. Eventually, the pty will be re-used and entry re-used as well. But in the meantime the old entries continue to show up in "who".
You could clear the file out at reboot time if it really bothers you. I see it as a resource. Each such entry is evidence of something that went wrong.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Is it possible to install unix on a system which already runs windows 98? (2 Replies)
Discussion started by: ms73eb
2 Replies
2. Solaris
Hi,
I'm new to solaris/ Unix and would like to know how to check in the system what
was the last login user were doing. Is there any way to check this? Thanks in advanced. (1 Reply)
Discussion started by: raziayub
1 Replies
3. Cybersecurity
Hy everyone!
I'm trying to lock out system accounts on my Tru64 UNIX machines.
Wherever I look, it says only to put Nologin or *Nologin in password field of desired account in /etc/passwd.
But it doesn't work. I still can su to that accounts. There are some accounts that already have Nologin... (1 Reply)
Discussion started by: veccinho
1 Replies
4. HP-UX
Hello,
I'm new to HP-UX. I have a system running B.11.23 on ia64. The system gets its user passwords via active directory. Everytime a new account is added to AD a script pushes out the account info to all the systems and this system is updated too. However, on this machine, users are unable to... (2 Replies)
Discussion started by: BFLO
2 Replies
5. UNIX for Advanced & Expert Users
Hi,
I was add my shell script in /etc/rc.d/rc.local file
Eg.
sh /root/KernelModule.sh
my KernelModule.sh contain
insmod xxxxx.ko
insmod yyyy.ko
I have insmod 22 kernelmodule in this script , all the modules are my own driver modules.
now problem is my system is booting but... (2 Replies)
Discussion started by: rajamohan
2 Replies
6. Solaris
Hello
I have a question that may sound stupid after and maybe it is.
We are syncing our sytem time via ntp from a reference time server. all works quite well
but due to a mall applikation which not accepts timestamps from our servers that in the future,
and if it even was 1 ms, we have to... (1 Reply)
Discussion started by: demwz
1 Replies
7. AIX
Guy's
I have AIX 6.1 has some slowness when I login to the system ..
When I login by user screen hangs for some time 20 seconds then it's give me the command prompt .. !
system is fine is working fine only this issue I faced can you please help me in this .. what's the expected reason... (2 Replies)
Discussion started by: ITHelper
2 Replies
8. Shell Programming and Scripting
Want to find the stdout for the partiuclar user login for past 12 hrs.
Say for eg : user login id is teladm
And the host name is sys22prod
I want to see the stdout for that user id in that host for past 12 hrs (1 Reply)
Discussion started by: mail2sant
1 Replies
9. Programming
I'm new to C++.
I have a text file named idpw.txt which is storing id and password
e.g
admin password
account1 abc
john hello
Here's my code so far:
bool login()
{
string user,password, user1, password1;
ifstream myfile("idpw.txt");
cout << "Please enter your username" <<... (3 Replies)
Discussion started by: andylbh
3 Replies
10. Solaris
Hi,
Am writing a script where I want to find uptime of certain servers. Is there any command where we can find uptime without login to the server, since the server list is big logging to the server will time consuming.
Thanks in advance (7 Replies)
Discussion started by: rogerben
7 Replies
INIT(8) System Manager's Manual INIT(8)
NAME
init - grandparent of all processes
DESCRIPTION
The first program started by Minix is init. The actions performed by init can be summarized by this pseudo shell program:
# Open 0, 1, 2.
exec </dev/null >/dev/log 2>&1
# Run the system initialization script.
sh /etc/rc $bootopts
>/etc/utmp
echo reboot >>/usr/adm/wtmp
while :; do
# Wait for a process to exit, but don't always block.
wait
# Record logout. (Not in this dumb way, of course.)
if "pid is in my tables" $pid
then
echo "logout $pid" >/etc/utmp
echo "logout $pid" >>/usr/adm/wtmp
fi
# Start a new session.
while read line type getty init
do
if idle $line
then
$init ... <$tty >$tty
$getty <$tty >$tty 2>&1 &
pid=$!
"add pid to tables" $pid
echo "login $line $pid" >/etc/utmp
echo "login $line $pid" >>/usr/adm/wtmp
fi
done < /dev/ttytab
done
The first action of init is to run /etc/rc to initialize the system as described in boot(8). Init then enters its main loop where it waits
for processes to exit, and starts processes on each enabled terminal line. The file /etc/ttytab contains a list of terminal devices, their
terminal types, the program to execute on them to allow one to login (usually getty(8)), and the program to execute first to initialize the
line (usually stty(1)). These fields may be left out to indicate that a line is disabled or that initialization is not necessary. The
commands are searched using the path /sbin:/bin:/usr/sbin:/usr/bin.
Init accepts several signals that must be sent to process id 1. (It is the first process, so natually its process id is 1.) The signals
are:
SIGHUP When receiving a hangup signal, init will forget about errors and rescan ttytab for processes to execute. Init normally rescans
ttytab each time it feels the need to respawn a process, so the hangup signal is only needed if a line has been shut down, or after
a terminate signal. Note that after turning a line off you will have to kill the process running on that line manually, init
doesn't do that for you.
SIGTERM
Normally sent by programs that halt or reboot Minix. Causes init to stop spawning new processes.
SIGABRT
Sent by the keyboard driver when the CTRL-ALT-DEL key combination is typed. Causes init to run the shutdown command. A second
abort signal makes init halt the system directly with a system call. The keyboard driver halts the system, without a sync, after
the third CTRL-ALT-DEL.
Minix vs. Minix-vmd
There are a few differences between standard Minix and Minix-vmd on how init is run. The /etc/rc file is executed under standard Minix
with input connected to /dev/console, but under Minix-vmd this is still /dev/null. This means that under Minix-vmd processes must be
reconnected to /dev/console with the intr program if they need user interaction. Minix-vmd passes the value of the bootopts boot variable
to /etc/rc. Standard Minix does not.
FILES
/etc/ttytab List of terminals devices.
/etc/utmp List of currently logged in users.
/usr/adm/wtmp Login/logout history.
SEE ALSO
ttytab(5), utmp(5), getty(8), stty(1), boot(8).
AUTHOR
Kees J. Bot (kjb@cs.vu.nl)
INIT(8)