Junior — Middle
როგორ შეიძლება დასრულდეს ან ძალით შეჩერდეს ზომბი-პროცესი ოპერაციული სისტემაში?
sobes.tech AI
პასუხი AI-სგან
ზომბი პროცესი არის პროცესი, რომელიც დასრულდა, მაგრამ მისი მშობელი პროცესი ჯერ კიდევ არ წაიკითხა მისი დასრულების სტატუსი (არ დაურეკავს wait-ს). სისტემაში ის იკავებს ჩანაწერს პროცესების ცხრილში, მაგრამ არ იყენებს CPU რესურსებს.
მეტწილად, ზომბი პროცესის პირდაპირი ძალით დასრულება შეუძლებელია, რადგან ის უკვე დასრულებულია. ზომბისგან გათავისუფლებისთვის საჭიროა:
- მშობელი პროცესი დაასრულოს ან გადატვირთოს, რომელიც არ დაურეკავს wait-ს. ამ შემთხვევაში, init (PID 1) გახდება ახალი მშობელი ზომბისთვის და ავტომატურად გამოიძახებს wait-ს, რათა ის წაშალოს.
- მშობელი პროცესს გაუგზავნოთ SIGCHLD სიგნალი, რათა ის დამუშავოს შვილების დასრულების სტატუსი.
სიგნალის გამოგზავნის მაგალითი მშობელზე:
kill -s SIGCHLD <PID_მშობელი>
თუ მშობელი არ რეაგირებს, მას შეიძლება დაასრულოთ:
kill -9 <PID_მშობელი>
ამის შემდეგ, init აიღებს და წაშლის ზომბის პროცესს.