Questions tagged [pty]

Pseudoterminals (also spelled “pseudotty” or “PTY”) are pseudo-devices used with ttys whose emulators run in userspace. Use the [tty] tag for broad (text terminal)-related questions, and the [console] tag for terminal devices pertaining to the system console.

Filter by
Sorted by
Tagged with
0
votes
3answers
90 views

What “bad” things may happen (and why) if a Terminal Emulator and the Shell running in it are using different TERM types?

For example, in PuTTY's configuration I set terminal type to xterm-256color but after SSH login I change it with export TERM=linux in the shell. I know it works quite well for most time. Just want to ...
1
vote
2answers
32 views

How can I clean up output from expect?

Background: I'm using expect to connect between AMCE.sh and a managed network switch. I can connect to the switch via SSH, log in and issue commands but because of the way the switch manages SSL ...
4
votes
2answers
1k views

Bash shell launched by forkpty() spawns child processes that ignore SIGINT. Why and how do I ensure SIGINT is not ignored?

I have a C program that uses forkpty to execute a bash shell. I'm finding that the programs launched by this shell are launched with SIGINT ignored, so when I send a Ctrl-C to the shell they never ...
0
votes
1answer
43 views

Why is Linux giving a pts number for real terminal console? (which is not an emulated terminal like ssh or xterm)

I read that pts is a pseudo-terminal (that we get through ssh or xterm) and tty is the native terminal. I didn't connect to my PC through ssh or xterm, but I am still getting pts/0 and pts/1 when I ...
0
votes
0answers
54 views

Interpret bash escape sequences and other characters using ncurses

I want to design a terminal multiplexer like tmux, but not that complex, something minimal, that works remote, using ncurses. On the server side, the workflow is as follows: The server process ...
4
votes
3answers
1k views

How can we find out the pseudoterminal master and slave from each other?

A pseudoterminal has a pair of master and slave. How can we find out the master device file from a slave device file (e.g. /etc/pts/3)? I only find /dev/ptmx and /dev/pts/ptmx, but they can't be ...
0
votes
1answer
22 views

Are there tools that I can use to obtain a snapshot of terminal or pty state? [duplicate]

Please stop marking this question as a duplicate, it's not a duplicate. Thanks. Consider the sequence of a, followed by \x1b[D ("cursor back"), followed by b. This would produce an output of ...
0
votes
0answers
10 views

tty specification / unit tests

I'm trying to write my own tty system for a Javascript-based operating system. I found a useful high-level overview of the tty here: What are the responsibilities of each Pseudo-Terminal (PTY) ...
0
votes
0answers
33 views

Data written to PTY master is not visible at PTY slave

I'm working on an embedded system using UART. There is a driver which reads from a UART device and writes to a PTY and an application which reads from the PTY. I need to use the PTY as not all ...
5
votes
1answer
224 views

Why blocking read() on a pty returns when process on the other end dies?

When slave side of pty is not opened, strace on the process, which does read(master_fd, &byte, 1);, shows this: read(3, So, when nobody is connected to the slave side of pty, read() waits for ...
0
votes
0answers
49 views

Prevent SSH from echoing STDIN when forcing pseudo-TTY

I'm running a command like this: ssh -tt server "/bin/bash -c \"trap 'kill -HUP 0' EXIT && awk '{print; exit}' > test.txt && ./test.sh\"" <<< "TEST&...
51
votes
7answers
11k views

How to trick a command into thinking its output is going to a terminal

Given a command that changes its behaviour when its output is going to a terminal (e.g. produce coloured output), how can that output be redirected in a pipeline while preserving the changed behaviour?...
1
vote
1answer
426 views

Shell Upgrade: script typescript command using bash

Can anyone explain what this means: SHELL=/bin/bash script -q /dev/null It is used to upgrade a shell in a CTF in HTB: SHELL=/bin/bash script -q /dev/null Ctrl-Z stty raw -echo fg reset xterm ...
0
votes
1answer
34 views

script -c '…' does NOT print colors

edit: I was in EternalTerminal session, and that was the source of the difference. In a regular ssh, it works. I need to get commands in a pipe to believe they are in a PTY and emit colorized output. ...
33
votes
2answers
17k views

How does a Linux terminal work?

If you fire up a terminal and call an executable (assuming one that's line oriented for simplicity) you get a reply to the command from the executable. How does this get printed to you (the user)? ...
3
votes
0answers
84 views

Can terminal parameter changes on the slave side be detected on master?

A process (creator) creates a pseudo-terminal master/slave[/dev/pts/1] pair. Another process (consumer) opens /dev/pts/1 and changes the serial terminal parameters with tcsetattr. Is there a way for ...
0
votes
0answers
391 views

Link character device to pty with socat

I have a "regular character device" - not sure of the proper naming - that doesn't support ioctl on an embedded device (/dev/appvcom). I need to connect to it with an application that uses some ioctl ...
0
votes
2answers
86 views

How to replace program running in graphical terminal with another program?

Lets say I have top or some ncurses program running in a graphical terminal, and from outside this terminal I'd like to execute a command, that would replace top with another program of my choosing. ...
2
votes
1answer
549 views

read(2) blocking behaviour changes when pts is closed resulting in read() returning error: -1 (EIO)

I'm trying to figure out how I can reliably loop a read on a pt master I have. I open the ptmx, grant and unlock it as per usual: * ptmx stuff */ /* get the master (ptmx) */ int32_t masterfd = open("/...
4
votes
0answers
1k views

Socat open TCP only when PTY opened

I am trying to link a virtual PTY with a remote device which accepts TCP connections on port 23. The opening and closing of the socket on the target device is a significant event and part of the ...
0
votes
1answer
236 views

Alternative to “openvt”, but for pseudo terminal (pts). Exists?

Alternative to "openvt"...but for pseudo terminal(pts)... Exists? Openvrt operate only tty...but not pts. (Example: lauch comand in specific pts and with user of shell pts destination) Command <...
74
votes
4answers
18k views

What are the responsibilities of each Pseudo-Terminal (PTY) component (software, master side, slave side)?

I am trying to figure out how a tty works1 (the work-flow and responsibilities of each elements). I have read several interesting articles about it, but there are still some blurry areas. This is ...
1
vote
1answer
199 views

How bash sets tty attributes before and after running a command?

Open xterm, run tty and see pseudo terminal slave file (let's say it is /dev/pts/0). Then open another xterm and run $ stty -F /dev/pts/0 speed 38400 baud; line = 0; lnext = <undef>; discard = &...
2
votes
3answers
378 views

Does a virtual terminal have a master end?

When I open a terminal emulator (xterm for example), xterm will have a master end (/dev/ptmx), and a slave end (/dev/pts/#). But what about when I open a virtual terminal (by pressing Ctrl+Alt+F#), ...
2
votes
1answer
693 views

What is the difference between IXON and IXOFF tty attributes?

To be specific, let's speak in pseudo-terminal terms. Suppose we have file descriptors master and slave for a pseudo-terminal pair (suppose it is a controlling tty). Disabling IXON on master (or slave,...
0
votes
1answer
167 views

Detect pty buffer capacity

I am using the tty subsystem of Linux to emulate serial ports. The emulated serial ports are used by an application that expects a physical serial port. In my case, the application is running under ...
0
votes
0answers
299 views

Why does changing my home directory in WSL break my PATH but only in the second window in tmux?

A bit ago, I found it necessary to set my home directory to my One Drive in WSL. Thanks to this post I was even able to get my permissions working correctly within WSL (Ubuntu 16.04 LTS). However, ...
0
votes
0answers
282 views

Restricted shell within docker container

Some context for my question: I am working on a pty NodeJS server running in docker where I want to provide users connecting to the shell an isolated environment where they can play around with ...
2
votes
1answer
457 views

How TTY differs from an ordinary file? [duplicate]

I'm trying to understand ssh's -t option: -t Force pseudo-terminal allocation. This can be used to execute arbitrary screen- based programs on a remote machine, which can be ...
5
votes
1answer
3k views

Is there a way to reptyr a make process or any process with subprocesses?

Consider the following Makefile. all: yes If I run make and suspend using Ctrl-Z, and then start screen or tmux, followed by an attempt to reptyr, I get the following error. $ reptyr 5328 [-] ...
0
votes
0answers
35 views

Why does macOS specific terminal shortcuts like Left-arrow + Option work in a remote shell on Ubuntu with a dedicated pty?

Why do macOS specific terminal shortcuts like Left-arrow + Option work in a remote shell on Ubuntu with a dedicated pty? I'm trying to understand why macOS specific terminal shortcuts like Left-arrow ...
2
votes
1answer
201 views

PTY master missing read function

How can terminal emulator read from ptm device while it missing read function? There is a PTY driver: https://github.com/torvalds/linux/blob/master/drivers/tty/pty.c. I see pty_write function, but can'...
3
votes
1answer
590 views

What exactly tty line discipline does with input from pty slave device?

I know that tty line discipline processes special characters (such as ^C, ^? and etc), but it is only about input from pty master device. But what about input from pty slave device? What tty line ...
0
votes
2answers
52 views

less: advertise terminfo through pipe

If I do ls | less, ls detects that it isn't connected to a terminal, which is fair enough. Except that less is connected to a terminal. In this setup, ls could produce the coloured and columnised ...
85
votes
3answers
101k views

What is stored in /dev/pts files and can we open them?

According to my knowledge, /dev/pts files are created for ssh or telnet sessions.
21
votes
1answer
3k views

What does 'script /dev/null' do?

Every time I log into a VM with root, su into a user account, and try to use screen it throws an error: Cannot open your terminal '/dev/pts/0' - please check. A Stack Overflow post said I needed to ...
1
vote
1answer
3k views

ssh - Disable pseudo-terminal allocation

ssh client option "-T" is Disable pseudo-terminal allocation. If I turn on this option, the remote sshd will not allocate a pty to run remote command. How the output of remote command transfer back ...
4
votes
1answer
1k views

Where does `/dev/pts/ptmx` come from? [duplicate]

On my Archlinux, /dev/pts is mounted by the devpts, so who created the /dev/pts/ptmx device node? What's the purpose of this node? it's the same (Major=5 Minor=2) device node same as /dev/ptmx/, but ...
5
votes
1answer
2k views

Virtual serial port between docker containers

I can create two linked virtual serial ports on a Linux system with socat, and pretend one end is a serial device, and the other one is some code that uses the device. The socat command would look ...
1
vote
0answers
435 views

PTY allocation request failed on channel 0

My remote vm server's password has expired, i cann't change password. [user@localhost ~]$ ssh root@x.x.x.x root@x.x.x.x's password: PTY allocation request failed on channel 0 WARNING: Your password ...
3
votes
1answer
257 views

Do pty devices have two input buffers?

When terminal devices are in cooked mode, bytes input into terminal is cached and processed by kernel, some bytes are used for line editting and "cosumed", making read return one line a time. But for ...
1
vote
2answers
97 views

Why application does not run from SCREEN without delay?

Suppose we need to run application in screen and keep it running when screen exits. The following command does the job, but only if "sleep 1" is appended to it. Why it does not work without "sleep 1"? ...
-2
votes
1answer
256 views

Can't open a screen on pty freshly created [closed]

I have a program that communicates through a serial protocol uart. I would like to test this protocol using simple terminal emulator running on the same computer. This program opens /dev/tty. I would ...
1
vote
1answer
3k views

Why is the ssh utility considered a pty?

I've read here that ssh is considered a pty. Why? If I run an ssh command in my console (say, in a Debian server), where comes the "pty" aspect of ssh here? For me, it's like I'm using any other ...
0
votes
1answer
56 views

Software flow control: why TX is blocked on terminal?

Why terminal cannot send data after ^S was pressed? I have always thought that ^S is used by terminal to tell tty driver that tty driver must not transmit data from application TO terminal (when it is ...
0
votes
0answers
220 views

Why does ssh allocate a tty on server side?

Basically when you run an interactive program on the server you need to use ssh -t instead of ssh. For example: This works: ssh -t user@server top. This doesn't work: ssh user@server top. Question ...
11
votes
3answers
5k views

Why doesn't sshd use a pseudo terminal when the ssh client's argument is followed by an interactive program?

The normal way to connect to an SSH server is ssh username@ip_address. But a user may only want to run a program on the remote machine. So the program name follows after the normal argument which is ...
1
vote
2answers
895 views

Do the output of command `tty` and the file `/dev/tty` both refer to the controlling terminal of the current bash process?

From man tty tty - print the file name of the terminal connected to standard input $ tty /dev/pts/2 From APUE: Historically, the name of the controlling terminal in most versions of the UNIX ...
2
votes
1answer
148 views

Are all the slaves paired with the same master?

In bash in lxterminal $ tty /dev/pts/2 $ ls /dev/ptmx -l crw-rw-rw- 1 root tty 5, 2 May 26 09:38 /dev/ptmx On Ubuntu, is there only one master for all the processes, and all the slaves are paired ...
1
vote
2answers
118 views

Does the master device appear just like a standard terminal to the driver program?

From the Linux Programming Interface The key point about a pseudoterminal is that the slave device appears just like a standard terminal. All of the operations that can be applied to a terminal ...