Skip to contentSkip to conversation

tty->name conversion?

DISCUSSION Taral 2 participants 3 messages Jul 5, 2001 – Jul 13, 2001

lore
Share & tools
lore

Taral

author
#0 lore raw

I noticed that ps still relies on device numbers to determine tty, since /proc/*/stat only exports the device number. Is there any way to get the device name? I noticed that it is not present in tty_struct anywhere (proc_pid_stat() uses task->tty->device, which is a kdev_t).

This would be useful to consider if we ever intend to create real unnumbered character/block devices.

Signature · 4 lines
Taral <[email protected]>
(This message is digitally signed. Please encrypt mail if possible.)
"Any technology, no matter how primitive, is magic to those who don't
understand it." -- Florence Ambrose
#1 lore raw
Quoted 7 lines · Taral

I noticed that ps still relies on device numbers to determine tty, since /proc/*/stat only exports the device number. Is there any way to get the device name? I noticed that it is not present in tty_struct anywhere (proc_pid_stat() uses task->tty->device, which is a kdev_t).

This would be useful to consider if we ever intend to create real unnumbered character/block devices.

This isn't quite true, at least for the version shipped with Debian.

The non-existant /proc/*/tty link is examined first. This is because several people have agreed that such a link would be good, even though it is difficult to implement with the current code. I think viro, hpa, and tytso have all looked into this.

The ps code also looks at /proc/*/fd/* when possible. This often gives a real filename. Otherwise, ps has to guess a name based on the device number and either a hard-coded table or information from /proc/tty/drivers.

author
#2 lore raw
Quoted 11 lines · Albert D. Cahalan
Quoted 7 lines · Taral

I noticed that ps still relies on device numbers to determine tty, since /proc/*/stat only exports the device number. Is there any way to get the device name? I noticed that it is not present in tty_struct anywhere (proc_pid_stat() uses task->tty->device, which is a kdev_t).

This would be useful to consider if we ever intend to create real unnumbered character/block devices.

This isn't quite true, at least for the version shipped with Debian.

<snip>

Thanks for your reply. It still remains, however, that for processes that you do not own, it has to guess, viz:

  319 taral    vc/1     S    Jul12 -zsh
  320 root     tty2     S    Jul12 /sbin/getty 38400 vc/2

Notice that the getty is listed as tty2, even though it opened /dev/vc/2.

Signature · 4 lines
Taral <[email protected]>
This message is digitally signed. Please PGP encrypt mail to me.
"Any technology, no matter how primitive, is magic to those who don't
understand it." -- Florence Ambrose