Erro ao tentar executar o agetty em uma instalação linux baseada em runit

2

Estou tentando executar o agetty em um sistema Linux baseado em runit, mas tenho o seguinte problema

sh: cannot set terminal process group (136) Inappropriate ioctl for device
sh: no job control in this shell

Eu não tenho ideia sobre esse erro, você tem algumas ideias

O script para executar o agetty é

#!/bin/sh
exec /sbin/agetty 38400 tty1 linux --noclear

Qualquer ajuda será boa.

    
por carpinchosaurio 18.01.2017 / 02:31

1 resposta

3

Use setsid da seguinte forma.

#!/bin/sh
exec setsid /sbin/agetty 38400 tty1 linux --noclear

O wrapper setsid começará agetty como um líder de sessão ( veja esta resposta , permitindo que ela se vincule a tty1 .

Você pode ver o comportamento diferente do exemplo a seguir ps .

# ps xao pid,ppid,sid,tty,cmd
[...]
150 1   150 ?    runsvdir
154 150 155 ?    runsv agetty-3
157 154 157 tty3 -bash
152 150 152 ?    runsv agetty-4
156 152 152 ?    -bash
[...]

O serviço agetty-3 usou setsid , enquanto agetty-4 não. Portanto, o shell em tty3 é líder de sessão e está ligado ao seu tty. O shell em tty4 está na mesma sessão de seu supervisor e não está ligado ( ? in tty column).

    
por 22.01.2017 / 19:59