Օգնականի մասին հաղորդագրությունը, որը դեռ աշխատում է, դիտարկեք որպես կյանքի ցիկլի ակնարկ, ոչ թե որպես գործընթացներ սպանելու թույլտվություն։ Վտանգավոր քայլը ոչ թե ինքնին կանգնեցնելն է, այլ դրանից առաջ նույնականացումը, որովհետև մեկ Mac-ում կարող են լինել նման անուններով մի քանի բաղադրիչ, և դրանցից միայն մեկն է տիրապետում կապին։ Սկզբում կառուցեք նույնականության գրառումը։ Հետո որոշեք՝ արդյոք կանգնեցնելը ճիշտ գործողություն է ընդհանրապես։

Կառուցեք նույնականության գրառում, նախքան գործելը

Չորս փաստ գործընթացը դարձնում են նույնականացվող՝ ընթացիկ PID-ը իր մեկնարկի ժամով, գործարկվող ֆայլը և արտադրանքը, որին այն պատկանում է, օգտատիրոջ կամ արտոնությունների համատեքստը, որի ներքո այն աշխատում է, և այն ամենը, ինչ սկսել է այն։ ps -o pid,ppid,user,etime,command -p 1234-ը տալիս է առաջին երեքը մեկ տողում, ներառյալ այն, թե որքան ժամանակ է գործընթացը կենդանի։ Activity Monitor-ը ցույց է տալիս նույն տեղեկությունը ավելի ընկերական դեմքով։ Ավելացրե՛ք կարգավորիչը, այսինքն՝ հավելվածը կամ ծառայությունը, որը պատասխանատու է այն սկսելու և կանգնեցնելու համար։ Այս չորսի հետ գործընթացը դադարում է անուն լինելուց և դառնում է օբյեկտ, որի մասին կարող եք մտածել։

Եթե չորսից մեկը անհայտ է, կանգ առեք այնտեղ։ Անծանոթ բաղադրիչը հարց է հրատարակչի կամ ադմինիստրատորի համար, ոչ թե փորձ։

Հին մատյանի PID-ն այժմ պատկանում է ուրիշի

Գործընթացների ID-ները վերամշակվում են, և երեկվա մատյանից պատճենված համարը կարող է այժմ մատնանշել ինչ-որ ամբողջովին անկապ բանի։ Նախքան որևէ եզրակացություն անելը համեմատեք մեկնարկի ժամը մատյանի ժամանակադրոշմի հետ։ Նույնը վերաբերում է կարճ անվանը, մեկ արտադրանքի երկու կառուցվածք կարող են տրամադրել նույնական անուններով և տարբեր նպատակներով օգնականներ։ Նույնականությունը բազմությունն է, երբեք միայն համարը։

Առանձնացրեք դերերը, նախքան որևէ այլ բանի դիպչելը։ Մեկ կապի հաճախորդը, մի քանի հավելվածների սպասարկող ընդհանուր օգնականը և ուրիշների սեսիաներ ընդունող սերվերը ցանկում բոլորն էլ ֆոնային գործընթացի տեսք ունեն։ Դրանցից միայն մեկը կարող է կանգնեցվել առանց հետևանքների, որոնք դուք չեք դիտարկել։

Կանգնեցրե՛ք տիրոջ միջոցով, ոչ թե ազդանշանի

Սկսեք այն կառավարիչից, որը տիրապետում է իրին՝ կապի Անջատել կոճակը, ծառայության աջակցվող կանգնեցման հրահանգը կամ կառավարման գործակալի սեփական գործողությունը։ Այդ ուղիները կատարում են այն ապամոնտաժումը, որը արտադրանքը սպասում է, ներառյալ երթուղիների հեռացումը և թունելի սարքի փակումը։ Ազդանշանը շրջանցում է այդ ամենը և հետևում վիճակ է թողնում։

Ուշադրություն դարձրեք, թե ինչ է մնում դրանից հետո։ Հիշողության մեջ մնացող գործընթացը գուցե սպասում է հաջորդ կապին, ինչը դիզայնի ընտրություն է, այլ ոչ թե ձախողված կանգնեցում։

Ինչու է վերակացուն վերսկսում այն, ինչ դուք սպանել եք

Եթե գործարկման դևոնը կամ ավտոմատ միացման քաղաքականությունը նախատեսում է, որ թունելը միացած լինի, գործընթացը սպանելը ոչինչ չի արտահայտում։ Վերակացուն տեսնում է ելքը և նորից սկսում այն, երբեմն նախքան դուք կավարտեք մատյանի ընթերցումը։

Գտե՛ք վերակացուին, նախքան նրա հետ կռվելը։ launchctl list-ը ցույց է տալիս բեռնված աշխատանքները և դրանց պիտակները, և կենդանի պահելու կարգավորում ունեցող աշխատանքը ելքի ժամանակ վերսկսվում է ըստ դիզայնի։ Այնտեղ ճիշտ գործողությունը մտադրությունը փոխելն է՝ բեռնաթափեք աշխատանքը, անջատեք ավտոմատ միացման քաղաքականությունը կամ խնդրեք ադմինիստրատորին դա անել։ Հարկադիր փակումը այլ գործիք է՝ այլ իմաստով, և այն պատկանում է փակված գործընթացի համար փաստաթղթավորված վերականգնման ընթացակարգին, ոչ թե սովորական կապի կառավարմանը։

Գրանցե՛ք կյանքի ցիկլի իրադարձությունը, ոչ թե սպանությունը

Գրեք բաղադրիչի նույնականությունը, հաճախորդի տարբերակը, առաջին համապատասխան կյանքի ցիկլի իրադարձությունը և այն, ինչ դուք արեցիք։ Իրադարձությունն ավելի կարևոր է, քան գործողությունը, որովհետև մուտքի պահին երկու օրինակի հայտնվելը մեկնարկի հերթականության խնդիր է, որը կկրկնվի։ Գրառումը, որը նշում է գործարկվող ֆայլը և դրա կարգավորիչը, թույլ է տալիս հաջորդ մարդուն վերարտադրել այն։

Ապա ստուգեք նախատեսված վիճակը՝ այն ծառայությունը, որն անհրաժեշտ էր օգտատիրոջը, և այն մասնավոր ռեսուրսը, որին այն հասնում է։ Խուսափեք այն խողովակաշարից, որը grep-ում է ենթատող և բռնի կերպով սպանում յուրաքանչյուր համընկնում, քանի որ այն դեն է նետում վերը նշված ամեն ինչ և սովորաբար ոչնչացնում է այն ապացույցը, թե ինչու էին երկու օրինակ գոյություն ունեցել։ Եթե գործընթացը շարունակում է վերադառնալ, հայտնաբերումը կոնֆիգուրացիայի կամ հերթականության թերություն է, և ուղղումը պատկանում է նրան, ով տիրապետում է հաճախորդի մեկնարկային վարքագծին։

Առնչվող հոդվածներ