정기적인 유지 관리가 필요한 비지박스/리눅스 박스가 있습니다. 이를 위해 ps
프로그래밍 방식으로 명령을 실행하고 실행 중인 프로세스를 확인합니다.
하지만 스크린샷에 표시된 것처럼 ps
명령이 종료되지 않고 프롬프트로 돌아가는 경우도 있고 그대로 남아 있어 응용 프로그램을 계속할 수 없는 경우도 있습니다.
또한 이전 ps
명령이 계속 실행되고 있는 반면 현재 명령(예: 스크린샷에 표시된 출력)도 중단된 것이 분명합니다.
문제가 무엇인지, 해결 방법을 아는 사람이 있나요?
답변1
D
네 번째 열은 프로세스가 현재 시스템 호출을 수행 중임을 나타냅니다. 이 시스템 상태는 일반적으로 짧은 시간 동안 지속되므로 관찰하기 어렵습니다. 관찰 결과는 D
느린 I/O(예: 네트워크 파일 시스템)( ps
수행하지 않음) 또는 커널이나 하드웨어 문제를 나타내는 경우가 많습니다.
커널 버그를 발견했거나 하드웨어의 일부가 제대로 작동하지 않습니다. 자세한 내용을 알아보려면 첫 번째 단계는 로그 파일을 찾는 것입니다. 시스템이 실행 중입니다바쁜 상자그리고 스크린샷에는 syslogd
인수 없이 실행되는 것이 표시되므로 모든 시스템 로그에 /var/log/messages
문제가 발생했다는 표시가 포함되어 있을 가능성이 높습니다. 로그를 해석하는 데 도움이 필요하면 질문에 편집하십시오(또는 로그가 너무 큰 경우 온라인 어딘가에 올려두십시오).
답변2
몇 가지 제안이 있습니다. 왜 이런 일이 발생하는지 걱정하지 말고 문제없이 ps를 실행하는 방법을 고려하십시오.
다음은 Linux/Unix 경험 수준에 따라 쉽게 시도할 수 있는 몇 가지 제안 사항입니다.
실행해 보세요
ps auxwwf > myprocesses && cat myprocesses
. 그러면 실행 중인 모든 프로세스의 세부 정보 목록이 제공되며 첫 번째 명령이 성공하면 myprocesses의 내용을 읽을 수 있습니다.단독으로 사용 하지 마십시오
ps
. 다양한 변형이 있지만 개인적으로 가장 마음에 드는 것은 이것입니다auxwwf
. 또 다른 좋은 점은ps lax
.다음을 수행하여 프로세스를 백그라운드로 보내 보십시오. 그런 다음 ps 프로세스의 PID를
ps auxwwf &
입력하고 볼 수 있습니다 .jobs
그런 다음 를 입력하여 불러올 수 있습니다fg
. ps 명령을 다시 백그라운드로 보내려면 를 누르십시오 Ctrlz. 이렇게 하면 귀하가 통제할 수 있습니다ps
. 정지되면 다른 터미널 세션을 열고 이와 관련된 PID를 종료할 수 있습니다.
이것이 당신에게 효과가 있는지 알려주세요. 이는 해결하려고 노력할 수 있는 문제 중 일부일 뿐입니다. 누군가 다른 방법을 찾을 것이라고 확신합니다.
답변3
오늘도 같은 문제를 보았습니다. 문제는 지연이 없다는 것입니다. 인정이 통과되었습니다평평한주문하다.
64 bytes from 172.16.60.143: icmp_seq=1 ttl=64 time=300 ms
64 bytes from 172.16.60.143: icmp_seq=2 ttl=64 time=293 ms
64 bytes from 172.16.60.143: icmp_seq=3 ttl=64 time=258 ms
64 bytes from 172.16.60.143: icmp_seq=4 ttl=64 time=268 ms
64 bytes from 172.16.60.143: icmp_seq=5 ttl=64 time=250 ms
64 bytes from 172.16.60.143: icmp_seq=6 ttl=64 time=282 ms
64 bytes from 172.16.60.143: icmp_seq=7 ttl=64 time=233 ms
64 bytes from 172.16.60.143: icmp_seq=8 ttl=64 time=259 ms
64 bytes from 172.16.60.143: icmp_seq=9 ttl=64 time=288 ms
64 bytes from 172.16.60.143: icmp_seq=10 ttl=64 time=240 ms
참고: VPN을 통해 서버에 연결하는 경우. 이 문제를 해결하려면 다른 ISP에 로그인해 보세요.