gzip
나는 쿠분투 시스템의 프로세스가 무작위로 시작되어 많은 리소스를 차지하고 랩톱 팬이 미친 듯이 작동하는 문제를 한동안 겪었습니다 . 프로세스가 나타나고 gzip -c --rsyncable --best
오랜 htop
시간 동안 실행됩니다. 원인이 무엇인지 모르겠습니다. 시스템은 Kubuntu 14.04이고 백업 계획이 설정되어 있지 않습니다. 다음에 프로세스가 나타날 때 프로세스의 원인을 어떻게 찾을 수 있는지 아는 사람이 있습니까? Google에서 검색했지만 여전히 이유를 찾을 수 없습니다. 명령에 대한 몇 가지 제안을 보았지만 ps
거기에 있는 모든 줄에 대한 grep은 실제로 아무 것도 가리키지 않습니다.
답변1
프로세스 트리
프로세스가 실행되는 동안 프로세스 계층 구조를 보려면 ps
옵션을 사용해 보십시오.f
ps axuf
그런 다음 프로세스 트리를 얻어야 합니다. 이는 상위 프로세스가 무엇인지 확인해야 함을 의미합니다 gzip
.
gzip
then 의 직계 자손인 경우 프로세스를 생성했을 init
가능성이 없으므로 상위 프로세스가 종료되었을 수 있습니다 .init
gzip
예약 된 일들
crontab
또한 s를 확인하여 생성된 항목이 있는지 확인 해야 합니다 . 귀하가 보고 있는 프로세스를 실행하는 사용자 는 어디에 있습니까 sudo crontab -l -u <user>
(귀하의 경우에는 그런 것 같습니다).user
gzip
root
이 시스템에 백그라운드 서비스 설정과 같은 작업을 수행한 다른 사용자가 있는 경우 crontab
해당 사용자도 확인하세요. gzip
실행 중이라는 사실이 root
트리거된 원래 프로세스도 gzip
실행 중임을 보장하지는 않습니다. 를 실행하면 root
기존 목록을 모두 볼 수 있습니다.crontab
sudo ls /var/spool/cron/crontabs
통나무
프로세스가 생성될 때 의심스러운 항목이 있는지 시스템 로그를 확인하세요. 쿠분투가 로그 파일의 이름을 다르게 지정하는지 확실하지 않지만 표준 우분투에서는 최소한 /var/log/syslog
.
최후의 수단: gzip 래퍼
이들 중 아무 것도 발생하지 않으면 gzip
바이너리 이름을 바꾸고 전달된 인수로 시작하는 작은 래퍼를 넣을 수 있지만 gzip
당시 시스템 상태도 캡처할 수 있습니다.
답변2
아마도 사용하는 파일에 집중해야 할 것입니다.
lsof -c gzip
... 꽤 좋은 아이디어를 줄 것입니다. 질문의 이미지에 있는 목록을 강조 표시한 후에 htop
만 누르면 이것이 바로 효과가 있을 것입니다. l
이 외에도 htop
키 입력으로 요청하면 프로세스 트리도 표시되므로 F5
프로세스의 출처(있는 경우)를 직접 확인할 수 있습니다.
Linux 시스템의 경우:
ps -Fwwp"$((gzip_ppid=$(ps -oppid= -Cgzip)))"
fuser -vau "/proc/$gzip_ppid/fd/"*
gzip
...상위 프로세스와 그것이 사용하는 파일, 그리고 이를 사용하는 다른 프로세스에 대한 많은 정보를 인쇄해야 합니다.
답변3
pstree는 무엇이 무엇을 생성했는지 보여주는 올바른 형식의 출력을 제공합니다(부모가 gzip 명령을 생성한 후 즉시 죽지 않는다고 가정).
답변4
다음은 무슨 일이 일어나고 있는지 파악하는 데 도움이 되는 몇 가지 팁입니다.
문제가 있는 프로세스의 PID를 가져옵니다.
$ pgrep -a gzip 25267 gzip -c --best file
내 시스템(주요 작업을 시작한 곳
gzip
)에서는 단일 PID: 25267을 반환합니다. PID가 여러 개 있을 수 있으므로 올바른 PID를 선택했는지 확인하세요. 이-a
플래그는pgrep
전체 명령줄을 인쇄하여 정확히 무엇이 실행되고 있는지 확인할 수 있도록 지시합니다.이를 시작한 프로세스의 PID, 상위 PID 또는 PPID 및 책임 있는 사용자를 가져옵니다.
$ ps -p 25267 -o user -o pid -o pgid -o args USER PID PGID COMMAND terdon 25267 25266 gzip -c --best file
이제 우리는 PID를 사용하는 프로세스에 의해
gzip
시작된다는 것을 알고 있습니다.terdon
25266
상위 프로세스가 무엇인지 알아보세요.
$ ps -p 25266 -o user -o pid -o pgid -o args USER PID PGID COMMAND terdon 25266 25266 /bin/bash /home/terdon/scripts/a.sh
또는 프로세스 트리를 살펴보세요.
$ pstree -p 25266 a.sh(25266)───gzip(25267)
어떤 디렉터리에서 실행되고 있는지 확인하세요(Linux):
$ readlink -f /proc/25267/cwd /home/terdon/foo
/home/terdon/scripts/a.sh
따라서 내 경우 에는 쉘 스크립트에 의해 시작되었으며 /home/terdon/foo
.