내 친구는 자신의 Raspberry Pi에서 SSH 서버를 실행하고 있습니다(이 문제는 RPi에만 국한된 문제가 아니므로 여기에 게시합니다). SSH를 통해 로그인하고 실행했습니다 :(){ :|: & };:
. 농담입니다. 그는 나에게 문자를 보내서 그의 Pi가 왜 그렇게 지체되는지에 대해 내가 무엇을 했는지 물었고 나는 그에게 말했고 그는 나에게 웃는 이모티콘을 다시 문자로 보냈습니다. 어떻게 고치냐고 물어보셔서 재부팅하라고 하더군요. 그는 그렇게 했고 여전히 지연되고 있지만 다시 얼기까지 약 1분 정도 걸렸다고 말했습니다. 재부팅 후에도 포크폭탄이 지속되는 것을 몰랐습니다. 그는 그것을 (일종의) 알아낼 수 있었습니다. 나는 그에게 무엇을 했는지 물었고 그는 "처음에는 거의 효과 없이 ulimit를 시도했습니다. 그런 다음 터미널에서 while 루프를 실행하여 매초마다 프로세스를 죽였습니다."라고 대답했습니다. 죽이는 과정.
따라서 문제는 프로세스를 종료하기 위해 매초 실행되는 스크립트가 있음에도 불구하고 그의 Pi가 여전히 네트워크에서 튀어나온다는 것입니다. 왜 이런 일이 발생하는지 모르겠습니다.포크 폭탄을 어떻게 완전히 제거할 수 있나요?
(그런데, [내가 아는 한] 그는 나에게 화를 내지도 않았고, 그렇지 않다고 말했습니다.)
답변1
우리는 이것이 포크 폭탄으로 인한 것이 아니라고 확신합니다. 그에게 60초가 주어진다면 그가 달릴 수 있는 시간은 많습니다.
나는 그것을 할 것이다:
terminal1$ wssh rpi-server cat /var/log/syslog > rpi-syslog
terminal2$ wssh rpi-server tail -f /var/log/syslog
terminal3$ wssh rpi-server top
terminal4$ wssh rpi-server dmesg
( wssh
포트가 열릴 때까지 기다렸다가 즉시 SSH를 실행하면 최대한 빨리 들어갈 수 있습니다. 다음을 사용 w4it-for-port-open
합니다 nc
.
https://gitlab.com/ole.tange/tangetools/tree/master/w4it-for-port-open
https://gitlab.com/ole.tange/tangetools/tree/master/wssh)