시스템의 모든 프로세스의 표준 입력에 장치 파일 (/dev/tty*
또는 /dev/pts/*
)이 연결되어 있어야합니다. tty(1)
프로그램과 비슷한 것을 구현하고 싶지만 어떤 프로세스에서도 작동합니다. 어떻게해야합니까? 이것은 Linux에 있습니다.리눅스의 모든 프로세스의 stdin에 연결된 tty 장치 파일 찾기
가장 가까운 파일은 /proc/pid/stat
파일을 구문 분석하고 6 번째 열을 읽는 것입니다. 이 번호는 내가 st_rdev
에 해당하는 번호를 제공합니다. 숫자를 얻기 위해 /dev/tty*
및 /dev/pts/*
파일에 stat(2)
을 실행하고 다시 매핑해야합니다. 이것이 psutil 패키지에서 사용 된 접근 방식입니다.
업데이트 : 구현 세부 사항보다는 내가 찾고있는 것에이 질문을 다시 언급했습니다.
두 번째 부분에서는 장치 노드가 동적으로 만들어 질 수도 있고 (udev, ...), 아직 존재하지 않을 수도 있습니다. 아마도 대부분의 장치 노드는 (아마도 USB 직렬 변환기 등을 제외하고는)'/ dev'의 어딘가에 항상 존재할 것으로 예상됩니다. – ninjalj