Veze, linkovi
Kompjuter biblioteka
Korpa

Preporučujemo

Naučite Swift 3

Naučite Swift 3

Popust cena: 1100 rsd

KAKO DA radite sa Startup objektima u Mac OS X-u

Uvod

U MacOS-9, startup item-i su bili prilično jednostavni. Svi programi su tretirani uglavnom podjednako, i njihovo postavljanje u Startup Items direktorijum je bilo dovoljno da se pokrenu čim se Finder pokrene. U MacOS-X-u, stvari su malčice komplikovanije - startup stavke mogu da se pokreću u Unix sloju ili kao standardni Macintosh program. Pored toga, one mogu da rade kao bilo koji od velikog broja korisnika, od root-a pa sve do korisnika bez administratorskih ovlašćenja. U sledećoj lekciji, objasniću razliku između različitih tipova startup stavki i kako da ih kreirate i koristite.

Pokretanje GUI zasnovanog programa

GUI zasnovani i drugi standardni Macintosh programi su najjednostavniji za postavljanje kao startup items-i. GUI zasnovani programi su ekstremno teški za pokretanje ako niste ulogovani, ali vi možete da pokrenete bilo koji Mac program kod login-a koristeći System Preferences program. Pre verzije 10.2, mogli ste da izaberete "Login" panel, a zatim "Login Items" karticu. U Jaguar-u, Login Items ima sopstveni Preference Pane. U ostalim slučajevima, kao što je dole prikazano, postoji Add dugme koje će vam omogućiti da dođete do programa po vašem izboru. Kada ste dodali program, on bi trebao da se pokrene svaki put kada se ulogujete, ili, ako ste podesili računar da vas automatski uloguje, svaki put kada restartujete računar.

Pokretanje Unix programa

Unix programi su sasvim druga priča. Pošto oni ne stupaju u interakciju sa GUI slojem OS-a, one mogu da se pokrenu kao bilo koji korisnik na sistemu. Međutim, tipično, postoje dva korisnika sa kojima ćete želeti da pokrenete Unix zadatak: kao vi sami i kao root. Pokrenite nešto pod vašim korisnički imenom ako želite da modifikujete fajlove ili ponašanja koja su specifična za vaš korisnički nalog, ili ako postoji servis za koji želite da bude dostupan tokom vaše login sesije. Pokrenite nešto kao root ako treba da modifikujete neko sistemsko ponašanje ili da obezbedite servis svim korisnicima računara (uključujući i one u mreži), bez obzira da li je neko ulogovan ili nije.

Izvođenje Unix komandi prilikom logovanja

Najverovatnije najjednostavniji način izvođenja serije Unix komandi je da kreirate shell skript. U svom najjednostavnijem obliku, ovi skriptovi su tekstualni fajlovi koji tipično počinju sa linijom:

#! /bin/sh

koja ih identifikuje kao shell skript i definiše program koji će da interpretira skript (u ovom slučaju to je standardni sh). Ostatak skripta će generalno gledano da se sastoji uglavnom od Unix komandi. Dakle, ako imate neke komande koje treba da izvršite, možete jednostavno da ih ukucate ispod ove linije i snimite tekstualni fajl. Nakon što ste snimili fajl, promenite mu ime tako da uključi ekstenziju .command (na primer - startup.command) i upotrebite chmod da biste napravili izvršni fajl (chmod +x startup.command). To će reći Finder-u da fajl treba da se otvori i izvrši kao Terminal dokument. Zatim možete da ga izaberete kao login stavku kako je gore opisano da biste pokrenuli Terminal i izvršili ove komande nakon što ste se ulogovali.

Alternativa koja izbegava vreme provedeno u lansiranju Terminala i rezultirajuću gužvu prozora je da napišete AppleScript koji će izvršiti komande koje vam trebaju i snimiti to kao program. Vi možete da šaljete Unix komande preko AppleScript-a koristeći do shell script komandu. Nakon što ste utvrdili da vaš AppleScript ima željeni efekat, snimite skript kao program tako što ćete izabrati Save As Run-Only iz File menija. Upotrebite Format: padajući meni da biste selektovali Application, i kliknite na opciju Never Show Startup Screen koja će se pojaviti u dnu. Nakon toga možete da postavite program gde god želite i onda ga selektujete iz Login" panela u System Preferences kao što je gore opisano.

Izvođenje Unix komandi kod startovanja sistema

Sve Unix komande koje se izvršavaju u toku butovanja OS-X se pokreću kao root i imaju potencijal da značajno izmene ponašanje vašeg sistema. Pošto je ovo potencijalno opasno, kreiranje jednog od ovih startup objekata je prilično teško. Oni imaju veoma struktuirani format i neće se učitati ak se ne nalaze na jednom od dva mesta: /System/Library/StartupItems (rezervisane za one koje obezbeđuje Apple) ili /Library/StartupItems (gde vi treba da stavljate vaše).

U ovom primeru, mi ćemo proći kroz proces kreiranja startup stavki koje će pokrenuti server MySQL baze podataka kada se računar bude butovao. Najlakši način da kreirate startup objekat je da upotrebite postojeći kao šablon. Srećom, postoji više njih u /System/Library/StartupItems. Mi ćemo izabrati Sendmail, pošto je on sličan MySQL-u u tome da obezbeđuje opcioni mrežno zasnovani servis. Pošto mi ne želimo slučajno da oštetimo bilo koji postojeći Startup Item, upotrebite Finder da biste došli do /System/Library/StartupItems i option-prevucite kopiju Sendmail direktorijuma na vaš desktop.

Prvi korak je da preimenujete direktorijum u nešto što je prikladnije, kao što je "MySQL". Kada ste to uradili, otvorite direktorijum. Trebalo bi da vidite tri fajla: Resources direktorijum, fajl koji se zove StartupParameters.plist, i fajl koji se poklapa sa inicijalnim imenom direktorijuma koji smo kopirali (Sendmail, pod pretpostavkom da ste pratili instrukcije). Prvo, preimenujte taj fajl tako da se tačno poklapa sa željenim imenom direktorijuma (na primer - MySQL, imajući u vidu da je ovo Unix, i da se velika slova uzimaju u obzir). Vaš direktorijum sada treba da izgleda ovako:

Sada je vreme da počnete da editujete sadržaj ovih fajlova. Počećemo sa Resources direktorijumom, koji treba da sadrži .lproj direktorijume za jedan ili više jezika. Izbrišite direktorijume za svaki jezik koji ne govorite. Otvorite English direktorijum, i naći ćete fajl koji se zove Localizable.strings. Otvorite ovaj fajl u tekstualnom editoru i videćete da je to XML fajl koji sadrži startup poruku (Starting Sendmail) i kao ključ i kao niz (string). Kada OS izvršava ovu startup stavku, on proverava niz ključa, i, u zavisnosti od jezika na koji je sistem podešen, zamenjuje ga sa odgovarajućim nizom ako je dostupan. Promenite ključ i niz na Starting MySQL i snimite fajl. Sada, idite u bilo koji drugi direktorijum koji niste izbrisali i otvorite iste te fajlove; promenite niz ključa na Starting MySQL, a drugi niz na nešto što odgovara datom jeziku.

Naš sledeći korak je StartupParameters.plist fajl. Ako imate instalirane razvojne alate, ovaj fajl će se otvoriti u PropertyListEditor-u, ali bilo koji tekstualni editor koji snima sirove tekstualne fajlove će biti dobar. Ovaj fajl može da dođe u dva oblika: kao XML ili kao čitljiviji tekstualni format. I jedan i drugi oblik će da sadrže istu informaciju, kao što ćete videti u nastavku:

Prva stvar koju treba da uradite je da promenite Messages vrednost u start - umesto Starting Sendmail, upišite ono što ste upisali za ključnu frazu gore, u ovom slučaju Starting MySQL. Takođe možete da promenite stop poruku, ali ova opcija trenutno nije implementirana, što znači da ovu poruku nećte videti sve dok se ne pojavi sledeća verzija OS-X-a.

Učitavanje Startup Items-a je inteligentno, u tom smislu da će se oni učitati tek nakon što su se učitali sistemski servisi koji su im potrebni da bi funkcionisali kako treba. Svaki Startup Item ima provides polje koje govori sistemu koje servise obezbeđuje, i requires polje koje govori operativnom sistemu koji servisi moraju da se pokrenu pre njega. Za MySQL, mi ćemo promeniti provides niz u MySQL. Na taj način, ako ikada budete trebali da napravite još jedan startup objekat kojem je potreban aktivan MySQL da bi radio, vi ćete moći u njegovo Requires polje da upišete MySQL. requires niz našeg Startup Item-a je u startu podešen na Resolver, što je odgovarajuće za MySQL, zato ćemo ga ostaviti nepromenjenog. Preference ključ je u stvari greška - promenite ga u OrderPreference. Ova vrednost daje OS-u grubu ideju o tome kada treba da počne da prati šta učitava; pošto generalno gledano baza podataka nije od presudne važnosti za funkcionisanje OS-a, jer pre toga mnogo stvari treba da radi kako treba, mi možemo da podesimo ovo na Late ili na Last. Takođe možete da ostavite Uses vrednost onako kako stoji (Network Time i NFS), pošto su ovo vrednosti koje pod određenim uslovima mogu značajno da utiču na funkcionisanje MySQL-a. I konačno, možete da promenite Description niz u nešto prikladnije, kao što je Server MySQL baze podataka. Zatim snimite fajl.

Sada treba da editujemo MySQL file, koji u stvari predstavlja izvršni shell skript koji pokreće MySQL. Nećemo komplikovati stvari, već ćemo ga podesiti da izvršava komande sa kojima obično počinje baza podataka unutar terminala:

cd /usr/local/mysql
sudo ./bin/safe_mysqld --user=mysql &

Druga komanda, izvršena kao root, izvršava skript koji pokreće bazu podataka u bezbednom režimu rada. Kao deo njenih sigurnosnih mera, ona zahteva da skript bude pokrenut iz mysql direktorijuma - prva linija jednostavno vodi u taj direktorijum.

U MySQL skriptu, ne bi trebalo da editujete prvih nekoliko linija - one ga identifikuju kao shell skript i uključuju neke korisne funkcije startovanja - ali promenite # Start mail server komentar u nešto odgovarajuće, kao što je # Pokretanje servera MySQL baze podataka. Izbrišite liniju koja počinje sa if, i promenite ConsoleMessage u Starting MySQL. Izbrišite sve ostalo u skriptu - mi ćemo jednostavno pokrenuti MySQL sa komandama koje bismo koristili u terminalu za njegovo pokretanje:

cd /usr/local/mysql; ./bin/safe_mysqld --user=mysql &

Obratite pažnju na to da smo preskočili upotrebu sudo - startup stavke se automatski izvršavaju kao root. Sveden na najprostiji oblik, skript treba da izgleda ovako:

#!/bin/sh
. /etc/rc.common
ConsoleMessage "Starting MySQL"
cd /usr/local/mysql; ./bin/safe_mysqld --user=mysql &

Snimite izmene, i vaša startup stavka je skoro spremna. Sledeće, treba da je prebacite u direktorijum startup stavki. Pre verzije 10.2, ovo je bilo jednostavno kao prevlačenje stavke direktorijum /Library/StartupItems. Kao bezbednosnu meru, 10.2 je promenio vlasništvo nad /Library/StartupItems u root, što otežava njegovo modifikovanje. Da biste postavili tamo vašu startup stavku, treba da izvršite komandu terminala kao root, koristeći sudo. Počnite tako što ćete ukucati:

sudo cp

Sledeće, prevucite StartupItems direktorijum u prozor terminala - putanja ka direktorijumu bi trebalo da se pojavi u liniji u kojoj kucate. Nakon toga, ukucajte:

/Library/StartupItems/MySQL

i pritisnite Return. Ovo će postaviti vašu startup stavku u odgovarajući direktorijum. Sledeća bezbednosna mera je da se nijedna startup stavka neće pokrenuti ako njen vlasnik nije root. Da biste bili sigurni da će se vaša stavka pokrenuti, ukucajte sledeće komande:

sudo chown -r root /Library/StartupItems/MySQL/*
sudo chgrp -r admin /Library/StartupItems/MySQL/*

Vaše dozvole sada treba da izgledaju ovako:

-rwxr-xr-x 1 root admin 1407 Dec 2 2001 MySQL
drwxr-xr-x 9 root admin  262 Dec 2 2001 Resources
-rw-r--r-- 1 root admin  216 Dec 2 2001 StartupParameters.plist
Pažljivim biranjem između ovih opcija, vi bi trebalo da možete da obezbedite da vaš OS-X ima sve funkcije i mogućnosti koje vam trebaju i kada vam trebaju.

 

         
Twitter Facebook Linkedin Pinterest Email
         

Budite prvi koji će ostaviti komentar.

Ostavite komentar Ostavite komentar

 

 

 

Veze, linkovi
Linkedin Twitter Facebook
 
     
 
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272