Metode de aplicare autoloading în mac os x

Metode de aplicare autoloading în mac os x

În cele din urmă, am ajuns la a doua parte a acestui subiect. Ultima dată când am vorbit pe scurt despre modul cel mai simplu pentru a autostart aplicații pe Mac OS X. Astăzi, nota se va aplica în primul rând pentru utilizatorii avansați (sau cei care doresc să devină astfel), deoarece se va concentra pe „agenți“ și desigur „demoni“%) bine, eu nu pot în acest articol pentru a acoperi toate opțiunile posibile, dar pentru a face o scurtă excursie în acest subiect ar fi, ca ruso-limba „Apple“ orientate spre resurse de pe Internet, în ultimii ani, care într-un fel uitat că, în plus față de știri și zvonuri sunt mai interesante și subiecte utile pentru Athey;)













În Mac OS X, ca și în alte sisteme de operare asemănătoare UNIX, există multe "pârghii" ascunse pentru pornirea, gestionarea și întreținerea diferitelor procese de sistem. Unele dintre aceste "pârghii" sunt servicii de sistem: Servicii (servicii) și Daemon (demoni). În centrul său, că "serviciile", că "demonii" sunt servicii de sistem care asigură funcționarea internă a întregului sistem, dar sunt proiectate pentru puțin în scopuri diferite, ei funcționează puțin diferit. Ce fac aceste "servicii" și "demoni"? - Și fac aproape totul, începând de la lansarea serverului web încorporat și montarea sistemelor de fișiere și terminând cu lansarea interfeței grafice împreună cu aplicațiile de sistem și de utilizator. Serviciile în sine sunt fișiere XML de configurare cu extensia .plist. localizate în agendele LaunchAgents sau LaunchDaemons (în funcție de destinație). Există mai multe lansatoare și mai multe lansatoare în sistem. fiecare dintre acestea fiind procesată în conformitate cu anumite privilegii:

- Toate fișierele de configurare din acest director vor fi executate numai atunci când utilizatorul se conectează (în directorul în care se află) și cu drepturile acelui utilizator. Puteți să o utilizați pentru a vă personaliza contul, fără a afecta sistemul și alți utilizatori.

- Acesta este directorul de sistem și toate fișierele de configurare conținute în acesta sunt executate atunci când orice utilizator cu drepturi de logat pe utilizator se conectează.

- Acesta este același director de sistem, dar toate configurările sunt executate de către persoana de administrator (ca root) la nivel de sistem (adică, script-ul va fi executat, indiferent dacă au intrat orice utilizator în sistem sau nu).

- Directorul de sistem este rezervat de sistemul de operare OS X. Toate configurațiile conținute în acesta sunt la nivel de sistem, se execută atunci când orice utilizator se conectează.

- Directorul sistem este rezervat de OS X. Toate config-urile care sunt în el sunt la nivelul întregii sisteme și se execută atunci când sistemul pornește cu drepturi de administrator (root).

Trebuie să înțelegeți scopul directoarelor LaunchAgents și LaunchDaemons. și diferența dintre ele. Lansările agenții de lansare sunt folosite pentru a lansa "servicii", iar LaunchDaemons sunt folosite pentru a rula "daemonii". Diferența dintre "servicii" și "demoni" este că "serviciile" încep de obicei după încărcarea GUI și sunt concepute pentru a rula aplicații grafice; Daemoanele pot fi executate în fundal înainte de a încărca interfața grafică și sunt proiectate să încarce aplicațiile fără o interfață grafică (utilități consola, scripturi bash și shell etc.). Toate fișierele .plist de configurare sunt procesate și executate de procesul de lansare a fundalului la momentul încărcării. Lansate de serviciile de sistem de lansare a proceselor ("servicii" și "daemon") se află în memorie și funcționează până la sfârșitul sistemului de operare, executând funcțiile specificate în acestea în conformitate cu regulile specificate. Prin ele însele, fișierele .plist de configurare nu pot fi numite aplicații - acestea sunt doar "scripturi" pentru rularea altor aplicații. Și în termeni simpli, Serviciile și Daemonii sunt fișiere cu un set de reguli pe care sistemul le utilizează de la începutul operațiunii până la finalizarea lor. Ce este interesant este modul de utilizare a acestor "reguli"? - În primul rând, este interesant pentru flexibilitatea și funcționalitatea acestuia. Cred că, pentru mulți, puțin este clar din cele de mai sus, dar când încep să dezasamblez exemplele, sper că voi toți devii clar;)

Îi plăcea? Împărtășește-l cu prietenii tăi!

Oh! OK, dimineata o sa-mi dau seama, altfel o sa dorm in vant;)
Îngrijirea câinelui

Ei bine, da, atunci când convertiți script-urile shell în XML, pot apărea unele confuzii. Puteți încerca să încorporați sau un script complet, cum ar fi:

Sau iată un alt mod pe care îl puteți încerca:

Dar cel mai simplu (pentru a nu "ghici") este de a crea un script bash, de exemplu, semințe aleatoare:

Și în XML (.plist), specificați calea completă la scriptul generat:

În mod natural, scriptul pentru semințe aleatorii va trebui să atribuie drepturile și atributele de acces corespunzătoare.
Îngrijirea câinelui

Multumesc imens, a incercat ultima optiune - ca totul sa dovedit (in cautarea logurilor linia de seminte aleatoare este nimic - este corect?)

Iar a doua întrebare este: Știi cum să faci un script să ruleze la LOGOUT?

Răspundeți!
Câine pentru câini

Da, deloc. Puteți verifica dacă scriptul funcționează în modul următor. Aveți o linie în script:

Dar, deoarece acest ecou va fi rulat prin lansare, nimic nu va fi transmis la Consola (cu excepția erorilor). Modificați scriptul astfel:

Și acum tot ecoul va fi afișat în Consola. După repornire, porniți consola și căutați cuvântul "RandomSeed" sau linia "Inițializarea generatorului de numere aleatoare ale kernelului" în jurnalele. Dacă sunt prezenți, totul este bine, scenariul funcționează. Această pictură folosesc ca un fel de instrument pentru depanare;)

În ceea ce privește executarea de script-uri înainte de a merge on / off / repornire ... Înainte de versiunea 10.4 Tiger, inclusiv ea, a fost o posibilitate foarte simplu de a efectua orice set de cripte, pur și simplu prin plasarea lor în dosarul corespunzător. Cu următoarea versiune de Mac OS X izminit acest principiu, și actualul 10.7 Lion și 10.8 Mountain Lion pentru a rula-cârlig ar trebui să Deconectați-utilizat script-uri. Funcționează astfel:
1. Creați un script de shell cu comenzile necesare, de exemplu aici:

2. Salvați-l, de exemplu, în folderul de sistem / sbin sub numele logout_hook și atribuiți-i permisiunile și atributele corecte:

3. Acum adăugați cârligul:

Ei bine, vom încerca ... Eu nu am încercat-o, dar, teoretic, totul ar trebui să funcționeze.
Îngrijirea câinelui

Se pare că am fost fericit devreme:
--------------
16 iunie 22:08:01 loginwindow MacBook.local [343]: *** NSTask: Sarcină pentru a crea calea '/ bin / customs_cripts / random-seed_Stop' a eșuat: 22, «Argument nevalid». Terminarea procesului temporar.
--------------
random-seed_Stop:
=======================
LOGS = 'RandomSeedStop'
(
echo "RandomSeedStop și logout acum ..."
spune-mi Milena "Sunt oprirea aleatoare, termin munca ..."
# Salvați sursa aleatoare pentru generatorul de numere aleatoare
# când ieșiți. Salvați 512 octeți care alcătuiesc
# pool de entropie pentru un generator de numere aleatoare.
ecou "Salvarea semințelor aleatoare ..."
dd dacă = / dev / urandom de = / var / număr de semințe aleatoare = 1
) | logger -s -t $ LOGS
=======================
Cine e vina și ce trebuie să facă.
Câine pentru câini

Deci, acesta este doar un fișier pentru a autorun script-ul. La tine, aparent, scenariul îndeplinește corect, o problemă nu în autorun, și nu într-un scenariu. Problema este că utilitarul dd nu poate trage UDID-ul din / dev / urandom. care este cel mai probabil folosit pentru generare.
Îngrijirea câinelui

Spune-mi dacă ai întâlnit. Există un server care asculta portul acceptând cereri și trimiterea de răspunsuri. La pornirea simplă, utilizatorul lucrează întotdeauna fără probleme. Se execută bine ca un daemon din orice director atunci când sistemul pornește. Diagnosticarea arată că totul funcționează așa cum ar trebui, portul este deschis. La securitate, portul este deschis, dar conexiunea este refuzată. Clientul nu o vede. În modul normal de funcționare merge numai dacă este îndepărtat și din nou ridică lansarea. Nu mai apar probleme suplimentare. În plist'e prescrise prize de pe manual, dar apoi clienții atârnă strâns, dar serverul de conexiune încă nu vede și nu acceptă. Repornirea în acest comportament nu schimbă nimic.

Aș fi recunoscător pentru orice tip-off, deoarece nu a fost nimic de găsit în rețea până când sa dovedit. Da, și utilizarea părții Socket-uri nu este aproape luată în considerare. Dar știu sigur că există restricții asupra porturilor. Dar din nou, ce ...

O zi bună, spune-mi ce fel de proces, cum să o omor, RunOuc. constatare nu poate proguglit când a lansat „mănâncă 90%“ procesor, carte de mac aer ^ astfel încălzit puternic, iar bateria stai repede în jos, după o repornire pentru un timp dispare, iar apoi din nou, pot să apară ...
Vă mulțumim anticipat ...

Salutări! Este necesar să se uite. Acesta este procesul de pornire (în opinia mea). Adică, ar fi trebuit să înceapă ceva după începerea sistemului, dar a fost agățat și "mâncat" la sută.
Îmbrăcat Semen

Programul nu pornește și nu repornește. Scriptul, o copie completă a celei de-a doua pagini, a schimbat doar calea spre alt fișier.

Metode de aplicare autoloading în mac os x

Fiecare dispozitiv din acest magazin a fost creat de inginerii Apple care utilizează dispozitive Apple. Sperăm că lucrul cu aceste "opere de artă" și veți fi inspirați să creați ceva nou.

Metode de aplicare autoloading în mac os x

Metode de aplicare autoloading în mac os x

Dacă aveți vreun dispozitiv Apple în ordine, suntem gata să îl subordonăm rapid și precis. De asemenea, obțineți sfaturi privind modernizarea și întreținerea de rutină a echipamentelor pentru a asigura funcționarea lor îndelungată și fără probleme. Trimiteți-ne cererile dvs. pentru reparații și întreținere.







Articole similare

Trimiteți-le prietenilor: