Langlaufender Hintergrundprozess beim Login starten

F

fgrimps

Mitglied
Thread Starter
Dabei seit
31.07.2009
Beiträge
60
Reaktionspunkte
0
Hallo MU-Community.

Ich versuche gerade einen langlaufenden CLI-Prozess beim Benutzerlogin zu starten. Als geeigneter Weg erschien mir hierfür das Einrichten eines Login Hooks. Leider komme ich damit nicht so recht weiter, weshalb ich hier um Hilfe und ggf. um Alternativen bitten möchte.

Das CLI-Programm, das ich laufen lassen möchte, überwacht bestimmte Benutzereinstellungen und resetet diese nach Bedarf (der Benutzer kann zwar Änderungen vornehmen, aber nur bis zu einem bestimmtem Limit.)

Ich habe Folgendes in die Datei /etc/ttys eingetragen:

#
# @(#)ttys 5.2 (Berkeley) 6/10/93
#
# name getty type status comments
#
# To secure single-user mode, enable Firmware password protection.
#
#console "/usr/libexec/getty std.57600" vt100 on secure
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow -LoginHook /usr/bin/limit.sh" vt100 on secure

Hier das Shell-Skript:

#!/bin/sh
nohup /usr/bin/limiter &

Da das CLI-Programm limiter nach dem Start weiterläuft bzw. laufen soll, versuche ich es in den Hintergrund zu schicken und verwende nohup.

Leider läuft der Prozess nach dem Login nicht.


Das Skript und die Anwendung haben Ausführungsrechte und laufen auch korrekt, wenn ich sie direkt anklicke. Gewünscht wäre es mir aber natürlich, wenn der Start beim Hochfahren / Login automatisch ablaufen würde.

Hier bin ich mit meinem Latein am Ende und frage deshalb um Hilfe.

Danke im Voraus und Grüße,
Peter
 
nimm doch lieber launchd launchagent oder ein startupitem...

und kleiner tipp noch, wenn du selbst binary installierst, dann pack die in /usr/local/bin statt /usr/bin ...
 
Hallo 01oneOeight.

Danke für die Rasche Antwort.
Ich habe schon versucht einfach an StartupItem zu erzeugen. Dazu hatte ich per AppleScript-Editor ein App gemacht (da scheinbar nur Apps StartupItems sein können, und keine CLI-Programme) und unter dem Benutzer zu den Startobjekten hinzugefügt. Das klappt so weit, hat aber den Nachteil, dass mein AppleScript-App nach dem starten / login "hängt" und abgeschossen werden muss, da der CLI-Prozess mit "do shell script ..." zwar im Hintergrund läuft, aber keine Rückmeldung an das App gibt. Das ist auch nicht so schön.

launchd launchagent kenne ich noch nicht, das sehe ich mir mal an, vielleicht geht es so.
Danke auch für den Tipp mit der Verzeichnisstruktur.

Grüß, Peter
 
mit lingon kannst du die z.b. sehr einfach erstellen...
 
Lingon kannte ich gar nicht. Ein nützliches Tool, gerade wenn man sich, wie ich, nicht sicher ist, alles wie verlangt zu konfigurieren.

Leider kriege ich auch damit mein Programm nicht wie gewünscht beim Login (unauffällig) zum Laufen. Wahrscheinlich liegt es am Code des Apps selbst. Ich werd dann erst wohl mit dem StartupItem, dass hängt, vorlieb nehmen.
Danke für die Hilfe.
 
du kannst doch den limiter direkt aufrufen, brauchst keine app für einen launchd job...
 
Stimmt schon, aber ich wollte den Prozess automatisch starten lassen, damit der Aufruf nicht vergessen werden kann. Das ist es, was letztlich ich im Sinn hatte.
 
ich meinte du kannst deine /usr/local/bin/limiter als job im launchd eintragen, da musst du kein script oder eine app drum basteln...
 
Ich habe mit Lingon folgende plist erzeugt und es damit nun endlich geschafft.
Erst hatte es nicht geklappt, da ich nicht mitbekommen hatte, dass man jeden Wert als Programmargument in eine eigene Zeile eingeben muss. Nun geht es aber. Jippi. Danke oneOeight!
 
Zuletzt bearbeitet:
Zurück
Oben Unten