Runit 기반 Linux 설치에서 agetty를 실행하는 중 오류가 발생했습니다.

Runit 기반 Linux 설치에서 agetty를 실행하는 중 오류가 발생했습니다.

runit 기반 Linux 시스템에서 agetty를 실행하려고 하는데 다음과 같은 문제가 발생합니다.

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

이 오류에 대해 잘 모르겠습니다. 어떤 아이디어가 있습니까?

agetty를 실행하는 스크립트는 다음과 같습니다.

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

어떤 도움이라도 좋을 것입니다.

답변1

사용 방법 setsid은 다음과 같습니다.

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

래퍼는 setsid세션 리더로 agetty를 시작합니다(이 답변을 참조하세요)에 바인딩할 수 있습니다 tty1.

다음 예에서 다른 동작을 볼 수 있습니다 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
[...]

agetty-3서비스를 이용하였고 setsid, agetty-4서비스를 이용하지 않았습니다. 따라서 tty3의 쉘은 세션 리더이며 해당 tty에 바인딩됩니다. tty4의 쉘은 감독자와 동일한 세션에 있으며 바인딩 해제되어 있습니다( ?tty 열에서).

관련 정보