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
열려 있는 연결은 활성 연결이 없을 때 이 특정 서버에 대한 첫 번째 연결입니다.