다른 세션/셸에서 tty/터미널 출력 제어

다른 세션/셸에서 tty/터미널 출력 제어

tty는 최대 하나의 세션을 제어할 수 있으며 더 나아가 제어된 세션 내의 백그라운드 프로세스 그룹이 세션에서 쓰거나 읽는 것을 허용하지 않도록 tty를 제어할 수 있으며 전자는 옵션에 의해 제어된다는 것을 들었습니다 TOSTOP.

그러나 tty에 쓰는 다른 세션의 위치는 무엇입니까? 어떤 식으로든 통제할 수 있나요? tty1tty2, 둘 다 쉘을 사용한다고 가정합니다 . 다음 명령이 shell2on 에 있다는 사실에 놀랐습니다 tty2.

ls > /dev/tty1

...실제로는 옵션이 무엇으로 설정되었든 lson 에서 출력을 생성했습니다 . 왜냐하면 이 옵션은 백그라운드 프로세스 그룹에서 쓰기를 시도할 때 예상되는 작업을 실제로 수행하기 때문입니다 . 누군가 나에게 무슨 일이 일어나고 있는지 알려줄 수 있습니까?tty1TOSTOPtty1shell2TOSTOP

답변1

옵션 TOSTOP(예를 들어유닉스 전동 공구, 또는&(bg)를 사용하여 실행하면 Linux csh 스크립트가 일시 중단(tty 출력)됩니다.)는 쉘을 나타냅니다.배경프로세스. 이 상황에서는 전경과 배경이 서로 다릅니다.모두 다 아는관계.

그러나 프로세스가 터미널을 열었다면 (거의 항상) 해당 터미널에 대한 권한이 있고, 사용자가 소유한 다른 프로세스(다른 터미널에서 실행 중)는 다음과 같습니다.~ 아니다해당 관계가 있으면 동일한 장치를 열고 쓸 수 있습니다.

관련 정보