SSH 프로세스가 정지되는 이유를 찾는 방법은 무엇입니까?

SSH 프로세스가 정지되는 이유를 찾는 방법은 무엇입니까?

SSH를 통해 명령을 실행하면 iostat -dkx 2 2예상한 결과를 얻지만 로컬 컴퓨터의 프로세스는 "중단 가능한 절전 모드" 상태에서 살아 있다고 말합니다. 왜 이런 일이 발생합니까? 그 행동의 이유를 알아낼 수 있는 방법이 있나요?

전체 명령:

$ ssh -o ConnectTimeout=4 -o ChallengeResponseAuthentication=no -o PasswordAuthentication=no <user>@host> iostat -dkx 2 2

ps 출력:

$ ps aux | grep 11893 && ps aux | grep PID
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
1000       10273  0.0  0.0 103280   904 pts/0    S+   12:09   0:00 grep PID
1000       11893  0.0  0.0 158732  3892 ?        S    Feb17   0:00 ssh -o ConnectTimeout=4 -o ChallengeResponseAuthentication=no -o PasswordAuthentication=no <user>@<host> iostat -dkx 2 2
1000       10285  0.0  0.0 103280   904 pts/0    S+   12:09   0:00 grep 11893

추적:

$ strace -p 11893
Process 11893 attached - interrupt to quit
select(8, [5], [], NULL, NULL^C <unfinished ...>

뭐야:

$ cat /proc/11893/wchan 
poll_schedule_timeout

스택 추적:

$ cat /proc/11893/stack 
[] poll_schedule_timeout+0x39/0x60
[] do_select+0x6bb/0x7c0
[] core_sys_select+0x18a/0x2c0
[] sys_select+0x47/0x110
[] system_call_fastpath+0x16/0x1b
[] 0xffffffffffffffff

답변1

이상이 없는 것 같습니다. 당신이 보고 있는 프로세스(ssh)는 프로세스 통계를 가져오는 순간에는 아무런 관련이 없습니다.

원격으로 시작된 명령의 출력이 없으면 "select"가 차단되고 프로세스가 절전 모드로 전환됩니다.

답변2

혹시 ControlMaster구성에 ( ) 가 있나요 ? ~/.ssh/config그렇게 하면 ssh다른 연결에 대한 마스터 연결인 경우 프로세스가 종료될 수 없습니다. 이것이 문제인 경우 실행과 관련이 없으며 iostat열려 있는 상태로 유지되는 연결은 이미 활성화된 연결이 없을 때 이 특정 서버에 대한 첫 번째 연결입니다.

관련 정보