Beschreibung
Ein Startobjekt wird beim Hochfahren des Systems bzw. beim Einloggen eines Nutzer automatisch geladen. In Mac OS X wird zwischen Login- und Startobjekten unterschieden.
Login-Objekte
Login-Objekte werden beim Einloggen eines Nutzers automatisch gestartet. Sie sind meist Programme mit einem GUI und laufen mit den Rechten des eingeloggten Benutzer. Sie sind mit den aus Mac OS Classic bekannten Startobjekten zu vergleichen (s.u.).
Je nach Mac OS X Version lassen sie sich komfortabel in den Systemeinstellungen einbinden:
- Mac OS X 10.0 - 10.1: Anmelden → Startobjekte
- Mac OS X 10.2: Startobjekte
- Mac OS X 10.3 - 10.6: Benutzer → Startobjekte
- Mac OS X 10.7: Benutzer & Gruppen → Anmeldeobjekte
In der dort befindlichen Liste können Startobjekte mittels der Plus- und Minusbuttons oder per Drag und Drop eingefügt werden. Außerdem kann man mit der rechten Maustaste oder in Verbindung mit der CTRL-Taste das Kontextmenü eines Programms, z.B. direkt im Dock, öffnen und -Bei der Anmeldung öffnen- auswählen.
Die ausgeführte Aktion ist dabei von der Art abhängig
- Programm -> starten
- Datei -> öffnen
- Netzwerkvolume -> mounten
- Festplattenabildung -> mounten
Das Anzeigen des Startobjektes (Programmfenster etc.) kann durch ein Häkchen in der Ausblenden Spalte beeinflußt werden.
Programme können bei der Installation auch selbststätig im Hintergrund laufende Hilfsprogramme in die Login-Objekte eintragen, deren Zuordnung nicht auf den ersten Blick möglich ist. Verweilt der Mauszeiger über einem Eintrag, kann jedoch durch den angezeigten Pfad ermittelt werden, zu welcher Anwendung ein solcher Helfer gehört.
Die auf diese Weise beschriebenen Startobjekte werden physikalisch in der Datei ~/Library/Preferences/loginwindow.plist
eingetragen.
Löscht man diese Dateien, werden alle Startobjekte aus der Benutzereinstellung entfernt und eine neue loginwindow.plist
angelegt.
Auf Systemebene existiert die Datei /Library/Preferences/loginwindow.plist
. Diese ist nicht direkt zugänglich und läßt sich nur mittels Property List Editor oder Texteditor bearbeiten.
Start-Objekte
Die im folgenden beschriebenen Startobjekte werden auf der Unixebene eingebunden. Diese Startobjekte besitzen in der Regel kein Interface und können mit unterschiedlichen Benutzerrechnten ausgeführt werden. Sie können nach der Abarbeitung beendet werden, oder verbleiben als Prozesse im Hintergrund aktiv.
Es existieren drei Arten von Startobjekten:
- Systemebene
- Von Apple bereit gestellte und beim Booten von Mac OS X benötigte Startobjekte befinden sich in System/Library/StartupItems. Mit Mac OS X 10.4 wurden diese Startobjekte teilweise durch Nutzung von launchd ersetzt.
- Alle Benutzer
- Startobjekte, welche für alle Benutzer geladen werden sollen, befinden sich in Library/StartupItems
- Einzelner Benutzer
- Die nur für den jeweiligen Nutzer gültigen Startobjekte befinden sich in ~/Library/StartupItems
- Achtung: An die oben genannten Plätze können nicht wie unter Mac OS X Classic Programmaliase o.Ä. geworfen werfen. Diese Funktion übernehmen die Login Objekte (s.o.).
Am einfachsten läßt sich die Funktionsweise am Beispiel erklären. Dazu wird das mitgelieferte Startobjekt für den Apache Webserver betrachtet. Es befindet sich in /System/Library/StartupItems/Apache
Das Startobjekt besteht aus verschiedenen Objekten:
- Einem Ordner
Apache
, welcher enthält - eine ausführbare Datei
Apache
- eine Property List
StartupParameter.plist
Falls diese Mindestkriterien erfüllt sind, kann das Startobjekt mittels SystemStarter start Apache
manuell gestartet werden. Das Terminalprogramm SystemStarter befindet sich in /sbin/
Ausführbare Datei
#!/bin/sh ## # Apache HTTP Server ## . /etc/rc.common StartService () { if [ "${WEBSERVER:=-NO-}" = "-YES-" ]; then ConsoleMessage "Starting Apache web server" if [ ! -e /etc/httpd/httpd.conf ] ; then cp -p /etc/httpd/httpd.conf.default /etc/httpd/httpd.conf fi apachectl start if [ "${WEBPERFCACHESERVER:=-NO-}" = "-YES-" ]; then if [ -x /usr/sbin/webperfcachectl ]; then ConsoleMessage "Starting web performance cache server" /usr/sbin/webperfcachectl start fi fi fi } StopService () { if [ -x /usr/sbin/webperfcachectl ]; then ConsoleMessage "Stopping web performance cache server" /usr/sbin/webperfcachectl stop fi ConsoleMessage "Stopping Apache web server" apachectl stop } RestartService () { if [ "${WEBSERVER:=-NO-}" = "-YES-" ]; then ConsoleMessage "Restarting Apache web server" apachectl restart if [ "${WEBPERFCACHESERVER:=-NO-}" = "-YES-" ]; then if [ -x /usr/sbin/webperfcachectl ]; then ConsoleMessage "Restarting web performance cache server" /usr/sbin/webperfcachectl restart fi fi else StopService fi } RunService "$1"
Die ausführbare Datei ist am einfachsten mittels Shell Script realisiert, welches mit
#! /bin/sh
beginnt.
StartupItems
kann drei Befehle handeln: start, stop und restart. Die drei Routinen im Shellscript enthalten die dazu korrespondierenden Befehle.
Die Verwendung von . /etc/rc.common
ermöglicht die Ausgabe mittels ConsoleMessage
und den Befehl RunService "$1"
.
...
StartupParameter.plist
{ Description = "Apache web server"; Provides = ("Web Server"); Requires = ("DirectoryServices"); Uses = ("Disks", "NFS"); OrderPreference = "None"; }
Die Datei enthält eine Beschreibung des Startobjektes sowie den bereitgestellten Dienst. Requires
gibt die für Apache benötigten Module an. Können diese nicht gestartet werden, startet auch Apache nicht. Uses
gibt die von Apache verwendeten Module an. Können diese nicht gestartet werden, startet Apache jedoch trotzdem. Als schwacher Parameter kann OrderPreference
den Startzeitpunkt beeinflußen. Mögliche Werte sind First, Early, None (standard), Late, Last.
Aus Requires
, Uses
und OrderPreference
ermittelt Mac OS X beim Booten die Abhängigkeiten zwischen den Startobjekten und führt diese in der korrekten Reihenfolge aus. Als Abgrenzung dazu existiert kein Mechanismus zum Auflösen möglicher Abhängikeiten in den Login-Objekten.
Verweise
Mac OS Classic
Die Handhabung der Startobjekte in Mac OS Classic ist denkbar einfach: Das Objekt wird in den Ordner "Startobjekte" im "Systemordner" gelegt, um direkt nach dem Finder gestartet zu werden.
- Kategorie
- Betriebssystem