Азыр иштеп жаткан жардамчы тууралуу билдирүүнү процесстерди өлтүрө баштоого уруксат катары эмес, жашоо циклінин белгиси катары кабыл алыңыз. Коркунучтуу кадам — токтотуунун өзү эмес, андан мурунку аныктоо, анткени бир Mac'те окшош аттуу бир нече компонент болушу мүмкүн жана алардын бирөө гана байланышка ээ. Адегенде инсандык жазууну түзүңүз. Анан токтотуу жалпысынан туура аракетпи экенин чечиңиз.

Аракет кылуудан мурун инсандык жазууну түзүңүз

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

Эгер төртөөнүн бири белгисиз болсо, ошол жерде токтоңуз. Белгисиз компонент — басмаканага же администраторго суроо, тажрыйба эмес.

Эски журналдагы PID азыр башкага таандык

Процесс IDлери кайра иштетилет, жана кечээки журналдан көчүрүлгөн сан азыр таптакыр байланышсыз нерсени көрсөтүшү мүмкүн. Кандайдыр бир тыянак чыгаруудан мурун башталган убакытты журналдын убакыт белгиси менен салыштырыңыз. Ушундай эле кыска атка да тиешелүү: бир продукттун эки курулушу бирдей аттуу жана башка максаттуу жардамчыларды жөнөтүшү мүмкүн. Инсандык — кортеж, эч качан жалгыз сан эмес.

Башка нерсеге тийүүдөн мурун ролдорду бөлүңүз. Бир байланыштын кардары, бир нече колдонмого кызмат кылуучу жалпы жардамчы жана башкалардын сессияларын кабыл алуучу сервер тизмеде баары тең фондук процесс сыяктуу көрүнөт. Алардын бирин гана сиз карабаган кесепеттерсиз токтотсо болот.

Сигнал аркылуу эмес, ээси аркылуу токтотуңуз

Нерсеге ээ болгон башкаруу элементинен баштаңыз: байланышты үзүү баскычы, кызматтын колдоого алынган токтотуу буйругу же башкаруу агентинин өзүнүн аракети. Бул жолдор продукт күткөн демонтажды аткарат, ага маршруттарды алып салуу жана туннель түзмөгүн жабуу кирет. Сигнал мунун баарын өткөрүп жиберип, артында абал калтырат.

Андан кийин эмне каларын караңыз. Эсте калган процесс кийинки байланышты күтүп жаткан болушу мүмкүн, бул ийгиликсиз токтотуу эмес, дизайн тандоосу.

Эмне үчүн супервизор өлтүргөнүңүздү кайра баштайт

Эгер запуск демону же автоматтык туташуу саясаты туннелдин күйүп турушун көздөсө, процессти өлтүрүү эч нерсени билдирбейт. Супервизор чыгууну көрүп аны кайра баштайт, кээде журналды окуп бүтпөй эле.

Аны менен күрөшүүдөн мурун супервизорду табыңыз. launchctl list жүктөлгөн иштерди жана алардын белгилерин көрсөтөт, ал эми тирүү кармоо жөндөөсү бар иш чыгууда дизайн боюнча кайра башталат. Ал жердеги туура аракет — ниетти өзгөртүү: ишти түшүрүңүз, автоматтык туташуу саясатын өчүрүңүз же администратордон ушундай кылууну сураныңыз. Мажбурлап жабуу — башка маанидеги башка курал, жана ал кармалып калган процесс үчүн документтелген калыбына келтирүү жол-жобосуна таандык, күндөлүк байланыш башкарууга эмес.

Өлтүрүүнү эмес, жашоо циклінин окуясын жазыңыз

Компоненттин инсандыгын, кардар версиясын, биринчи тиешелүү жашоо циклінин окуясын жана эмне кылганыңызды жазыңыз. Окуя аракеттен маанилүү, анткени кирүүдө эки нусканын пайда болушу кайталануучу баштоо тартибинин көйгөйү. Аткарылуучу файлды жана анын башкаруучусун атаган жазуу кийинки адамга аны кайра жаратууга мүмкүндүк берет.

Анан көздөлгөн абалды текшериңиз: колдонуучуга керек болгон кызматты жана ал жеткен жеке ресурсту. Ички сапты grep кылып, ар бир дал келүүнү мажбурлап өлтүргөн түтүктөн качыңыз, анткени ал жогорудагынын баарын таштап, эки нуска эмне үчүн болгону тууралуу далилди адатта жок кылат. Эгер процесс кайра-кайра кайтып турса, табылга — конфигурация же тартип кемчилиги, ал эми оңдоо кардардын баштоо жүрүм-турумуна ээ болгон адамга таандык.

Тектеш макалалар