Sobes.tech
Junior — Middle

როგორ შეიძლება დასრულდეს ან ძალით შეჩერდეს ზომბი-პროცესი ოპერაციული სისტემაში?

sobes.tech AI

პასუხი AI-სგან

ზომბი პროცესი არის პროცესი, რომელიც დასრულდა, მაგრამ მისი მშობელი პროცესი ჯერ კიდევ არ წაიკითხა მისი დასრულების სტატუსი (არ დაურეკავს wait-ს). სისტემაში ის იკავებს ჩანაწერს პროცესების ცხრილში, მაგრამ არ იყენებს CPU რესურსებს.

მეტწილად, ზომბი პროცესის პირდაპირი ძალით დასრულება შეუძლებელია, რადგან ის უკვე დასრულებულია. ზომბისგან გათავისუფლებისთვის საჭიროა:

  • მშობელი პროცესი დაასრულოს ან გადატვირთოს, რომელიც არ დაურეკავს wait-ს. ამ შემთხვევაში, init (PID 1) გახდება ახალი მშობელი ზომბისთვის და ავტომატურად გამოიძახებს wait-ს, რათა ის წაშალოს.
  • მშობელი პროცესს გაუგზავნოთ SIGCHLD სიგნალი, რათა ის დამუშავოს შვილების დასრულების სტატუსი.

სიგნალის გამოგზავნის მაგალითი მშობელზე:

kill -s SIGCHLD <PID_მშობელი>

თუ მშობელი არ რეაგირებს, მას შეიძლება დაასრულოთ:

kill -9 <PID_მშობელი>

ამის შემდეგ, init აიღებს და წაშლის ზომბის პროცესს.