უკვე გაშვებული დამხმარის შესახებ შეტყობინებას მოეკიდეთ როგორც სასიცოცხლო ციკლის მინიშნებას და არა პროცესების მოკვლის დაწყების ნებართვას. საშიში ნაბიჯი არ არის თავად შეჩერება, არამედ მის წინა იდენტიფიკაცია, რადგან ერთ Mac-ზე შეიძლება იყოს მსგავსი სახელების რამდენიმე კომპონენტი და მათგან მხოლოდ ერთი ფლობს კავშირს. ჯერ იდენტობის ჩანაწერი შექმენით. შემდეგ გადაწყვიტეთ, არის თუ არა შეჩერება საერთოდ სწორი ქმედება.

მოქმედებამდე იდენტობის ჩანაწერი შექმენით

ოთხი ფაქტი ხდის პროცესს იდენტიფიცირებადს: მიმდინარე PID მისი დაწყების დროით, გაშვებადი ფაილი და პროდუქტი, რომელსაც ეკუთვნის, მომხმარებლის ან პრივილეგიის კონტექსტი, რომლის ქვეშაც მუშაობს, და ყველაფერი, რაც ის დაიწყო. ps -o pid,ppid,user,etime,command -p 1234 პირველ სამს ერთ ხაზში გაძლევთ, მათ შორის რამდენ ხანს არის პროცესი ცოცხალი. Activity Monitor იგივე ინფორმაციას უფრო მეგობრული სახით აჩვენებს. დაამატეთ მმართველი, ანუ აპლიკაცია ან სერვისი, რომელიც პასუხისმგებელია მის გაშვებასა და შეჩერებაზე. ამ ოთხით პროცესი წყვეტს სახელი იყოს და ხდება ობიექტი, რომელზეც შეგიძლიათ მსჯელობა.

თუ ოთხიდან ერთი უცნობია, იქ გაჩერდით. უცნობი კომპონენტი კითხვაა გამომცემლისთვის ან ადმინისტრატორისთვის და არა ექსპერიმენტი.

ძველი ჟურნალის PID ახლა სხვას ეკუთვნის

პროცესების ID-ები გადამუშავდება და გუშინდელი ჟურნალიდან კოპირებული ნომერი ახლა შეიძლება სრულიად უკავშირო რამეზე მიუთითებდეს. ნებისმიერი დასკვნის გაკეთებამდე შეადარეთ დაწყების დრო ჟურნალის დროის ბეჭედს. იგივე ეხება მოკლე სახელსაც: ერთი პროდუქტის ორი ნაგებობა შეიძლება აწვდიდეს იდენტური სახელების და სხვადასხვა დანიშნულების დამხმარეებს. იდენტობა კორტეჟია და არასოდეს მხოლოდ ნომერი.

სხვა რამეზე შეხებამდე გამოყავით როლები. ერთი კავშირის კლიენტი, რამდენიმე აპლიკაციას მომსახურე საერთო დამხმარე და სხვების სესიების მიმღები სერვერი სიაში ყველა ფონურ პროცესს ჰგავს. მათგან მხოლოდ ერთის შეჩერებაა შესაძლებელი იმ შედეგების გარეშე, რომლებიც არ გაითვალისწინეთ.

შეაჩერეთ მფლობელის მეშვეობით და არა სიგნალით

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

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

რატომ უშვებს სუპერვიზორი ხელახლა იმას, რაც მოკალით

თუ გაშვების დემონი ან ავტომატური კავშირის პოლიტიკა გულისხმობს, რომ გვირაბი ჩართული იყოს, პროცესის მოკვლა არაფერს გამოხატავს. სუპერვიზორი ხედავს გასვლას და ისევ უშვებს, ზოგჯერ სანამ ჟურნალის კითხვას დაასრულებთ.

იპოვეთ სუპერვიზორი, სანამ მას დაებრძოლებით. launchctl list აჩვენებს ჩატვირთულ სამუშაოებს და მათ ჭდეებს, და ცოცხლად შენარჩუნების პარამეტრის მქონე სამუშაო გასვლისას დიზაინის მიხედვით ხელახლა იშვება. სწორი ქმედება იქ განზრახვის შეცვლაა: გადმოტვირთეთ სამუშაო, გამორთეთ ავტომატური კავშირის პოლიტიკა ან სთხოვეთ ადმინისტრატორს ამის გაკეთება. იძულებითი დახურვა სხვა მნიშვნელობის სხვა იარაღია და ის ჩარჩენილი პროცესის დოკუმენტირებულ აღდგენის პროცედურას ეკუთვნის და არა ჩვეულებრივ კავშირის მართვას.

ჩაწერეთ სასიცოცხლო ციკლის მოვლენა და არა მოკვლა

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

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

დაკავშირებული სტატიები