프로세스의 세션을 변경하면 프로세스의 stdin 및 stdout이 변경됩니까?

프로세스의 세션을 변경하면 프로세스의 stdin 및 stdout이 변경됩니까?

프로세스가 터미널에서 입력 및 출력을 받는다는 것을 읽었습니다.회의관련이 있습니다.

그렇다면 이는 프로세스의 세션을 변경하면 프로세스의 stdin 및 stdout이 변경된다는 의미입니까(이제 프로세스 터미널이 실제로 변경되었으므로)?

내가 읽은 곳은 여기야.

답변1

표준 입력 및 출력은 일반적으로 특정 터미널 와이어에 연결됩니다 /dev/pts/5. /proc/12345/fd(symlink의 대상)에서 볼 수 있습니다 ( 12345실제 프로세스 ID로 대체). 이 목표가 자동으로 다른 목표로 바뀌는 것은 절대 불가능합니다. 이를 변경하려면 해당 파일 설명자를 명시적으로 닫고 새 파일 설명자를 명시적으로 열어야 합니다.

누군가 특별한 트릭을 수행하고 표준 입력 및 출력이 특정 방식으로 지정되는 있을 법하지 않은/비정상적인 상황에서 무슨 일이 일어날지 잘 모르겠습니다 /dev/tty. 나는 당신의 가정이 정확할 수 있다고 생각하며 이 경우 입력 및 출력 터미널이 실제로 변경될 수 있습니다.

관련 정보