ps 명령: tty 또는 pts만을 기반으로 프로세스 보고서를 생성하는 방법은 무엇입니까?

ps 명령: tty 또는 pts만을 기반으로 프로세스 보고서를 생성하는 방법은 무엇입니까?

ps --help all다음 옵션의 존재와 관련된 옵션 에 관한 명령을 전달합니다.tty

 -a                   all with tty, except session leaders
  a                   all with tty, including other users
  x                   processes without controlling ttys

tty[1-6]와 의 차이점을 알고 있습니다 pts/[0...N]. 곧 전자는 콘솔을 통한 직접 연결을 기반으로 하고 후자는 원격 연결을 통한 것입니다(예 ssh: ). 잘못된 점이 있으면 수정해 주세요.

Ubuntu Server용 Virtual Box의 기능은 다음과 같습니다.

  • 6개의 tty는 3명의 다른 사용자에 의해 로그인되었습니다(2개의 tty에 2명의 사용자, 예를 들어 user1은 tty1과 tty3에 로그인하고 user2는 tty2와 tty4에 로그인하는 등).
  • 3개의 SSH 연결.

ps a또는 명령이 실행 되면 ps -a출력에서 TTY​​열/헤더에 tty[1-6]예상 값이 표시됩니다.하지만도 등장했습니다 pts/[0..N]. 기대하지 않았거든요 pts왜냐면아니요ttyA.

이제 이 x옵션에 대해 설명합니다. 설명이 다음을 의미하는지/의미하는지 확실하지 않습니다.아니요관련 tty- 예 pts. 하지만 또다시 tty(예기치 않은) 것과 예상된 것이 있습니다 pts.

제가 이 옵션을 잘못 이해한 경우 정정해 주시기 바랍니다.

질문

  • tty또는 기반으로만 프로세스 보고서를 생성하는 방법은 무엇입니까 pts? 둘은 함께 있지 않다

답변1

pts어떠한 것도UNIX 98 의사 터미널, 원격 연결뿐만 아니라. 그래픽 터미널 에뮬레이터 screentmux세션 등에 사용되는 것을 볼 수 있습니다 .

BSD 의사 터미널을 사용할 때 의사 터미널의 접두사가 될 수도 있다고 tty[1-6]언급 했습니다 . 연결된 터미널의 접두어로도 사용됩니다.ttyttyp0예를 들어직렬 포트( ttyS0등), USB( ttyUSB0) 및 기타 포트를 통해 잊어버렸습니다. VT 수도 6개를 초과할 수 있습니다.

ps모두를 구별하지 않습니다. 프로세스의 제어 터미널은 터미널입니다.

따라서 원하는 방식으로 프로세스를 선택하는 유일한 방법은 단일 터미널을 지정하는 것입니다.

ps -t tty1 -t tty2

또는 더 일반적으로,

ttys=(/dev/tty[123456789]*)
ps "${ttys[@]/#/-t}"

등(옵션이 추가됨) 또는 ps사후 프로세스의 출력:

ps -e | awk '$2 ~ /^tty/'

ps x프로세스에 관해서는 프로세스 x에 터미널이 있어야 한다는 제한이 해제되지만 터미널 없이 프로세스를 선택하는 것은 제한되지 않습니다. 따라서 ps …x선택한 모든 프로세스는 물론 누락된 터미널로 인해 필터링된 다른 프로세스도 표시됩니다. 기본 ps x경우에는 이것이 모든 프로세스입니다(사용자 제한은 여전히 ​​적용됩니다).

관련 정보