Қазірдің өзінде жұмыс істеп тұрған көмекші туралы хабарламаны өмірлік циклдің белгісі ретінде қарастырыңыз, процестерді өлтіруді бастауға рұқсат ретінде емес. Қауіпті қадам — тоқтатудың өзі емес, оның алдындағы сәйкестендіру, өйткені бір Mac-те ұқсас атаулы бірнеше компонент болуы мүмкін және олардың тек біреуі ғана байланысқа ие. Алдымен сәйкестік жазбасын құрыңыз. Содан кейін тоқтатудың жалпы дұрыс әрекет екенін шешіңіз.

Әрекет етпес бұрын сәйкестік жазбасын құрыңыз

Төрт факт процесті сәйкестендіруге болатын етеді: ағымдағы PID және оның басталу уақыты, ол жататын орындалатын файл мен өнім, оның жұмыс істейтін пайдаланушы немесе артықшылық контексті және оны іске қосқан кез келген нәрсе. ps -o pid,ppid,user,etime,command -p 1234 алғашқы үшеуін бір жолда береді, соның ішінде процесс қанша уақыт тірі екені. Activity Monitor сол ақпаратты неғұрлым достық кейіппен көрсетеді. Басқарушыны қосыңыз, яғни оны іске қосу мен тоқтатуға жауапты қолданба немесе қызмет. Осы төртеуімен процесс атау болудан қалып, ол туралы ойлауға болатын нысанға айналады.

Егер төртеуінің біреуі белгісіз болса, сонда тоқтаңыз. Белгісіз компонент — баспагерге немесе әкімшіге қойылатын сұрақ, тәжірибе емес.

Ескі журналдағы PID қазір басқа біреуге тиесілі

Процесс ID-лері қайта өңделеді, ал кешегі журналдан көшірілген нөмір қазір мүлдем байланысы жоқ нәрсені көрсетуі мүмкін. Қандай да бір қорытынды жасамас бұрын басталу уақытын журналдың уақыт белгісімен салыстырыңыз. Бұл қысқа атауға да қатысты: бір өнімнің екі құрылымы бірдей атаулы және әртүрлі мақсатты көмекшілерді жіберуі мүмкін. Сәйкестік — кортеж, ешқашан тек нөмір емес.

Басқа нәрсеге тиіспес бұрын рөлдерді бөліңіз. Бір байланыстың клиенті, бірнеше қолданбаға қызмет көрсететін ортақ көмекші және басқалардың сессияларын қабылдайтын сервер тізімде бәрі де фондық процесс сияқты көрінеді. Олардың тек біреуін ғана сіз қарастырмаған салдарсыз тоқтатуға болады.

Сигнал арқылы емес, иесі арқылы тоқтатыңыз

Затқа ие басқару элементінен бастаңыз: қосылымды ажырату түймесі, қызметтің қолдайтын тоқтату пәрмені немесе басқару агентінің өз әрекеті. Бұл жолдар өнім күтетін бөлшектеуді орындайды, оған маршруттарды жою және туннель құрылғысын жабу кіреді. Сигнал мұның бәрін айналып өтіп, артында күй қалдырады.

Одан кейін не қалатынын бақылаңыз. Жадыда қалатын процесс келесі қосылымды күтіп тұрған болуы мүмкін, бұл сәтсіз тоқтату емес, дизайн таңдауы.

Неліктен супервизор өлтіргеніңізді қайта іске қосады

Егер іске қосу демоны немесе автоматты қосылу саясаты туннельдің қосулы болуын көздесе, процесті өлтіру ештеңе білдірмейді. Супервизор шығуды көреді де қайта іске қосады, кейде журналды оқып бітірмей тұрып.

Онымен күреспес бұрын супервизорды табыңыз. launchctl list жүктелген жұмыстарды және олардың белгілерін көрсетеді, ал тірі ұстау параметрі бар жұмыс шығу кезінде дизайн бойынша қайта іске қосылады. Ондағы дұрыс әрекет — ниетті өзгерту: жұмысты түсіріңіз, автоматты қосылу саясатын өшіріңіз немесе әкімшіден соны сұраңыз. Мәжбүрлеп шығару — басқа мағыналы басқа құрал және ол кептелген процесс үшін құжатталған қалпына келтіру рәсіміне жатады, күнделікті қосылымды басқаруға емес.

Өлтіруді емес, өмірлік цикл оқиғасын жазыңыз

Компоненттің сәйкестігін, клиент нұсқасын, алғашқы маңызды өмірлік цикл оқиғасын және не істегеніңізді жазыңыз. Оқиға әрекеттен маңыздырақ, өйткені кіру кезінде екі дананың пайда болуы қайталанатын іске қосу ретінің мәселесі. Орындалатын файл мен оның басқарушысын атайтын жазба келесі адамға оны қайта шығаруға мүмкіндік береді.

Содан кейін көзделген күйді тексеріңіз: пайдаланушыға қажет болған қызметті және ол жететін жеке ресурсты. Ішкі жолды grep етіп, әр сәйкестікті мәжбүрлеп өлтіретін құбырдан аулақ болыңыз, өйткені ол жоғарыдағының бәрін лақтырып, әдетте екі дананың неге болғаны туралы дәлелді жояды. Процесс қайта-қайта оралса, табылым — конфигурация немесе рет ақауы, ал түзету клиенттің іске қосылу мінез-құлқына ие адамға тиесілі.

Қатысты мақалалар