1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Job einmalig, zeitgesteuert starten

Dieses Thema im Forum "OS X-Developer" wurde erstellt von MX-Julian, 11.12.08.

  1. MX-Julian

    MX-Julian Golden Delicious

    Dabei seit:
    11.12.08
    Beiträge:
    8
    Hallo,

    ich möchte mit MacOS 10.5 Jobs anlegen können, die einmalig zu einer gegebenen Zeit gestartet werden.

    Es soll ein PERL-Skript mit einem übergebenen Parameter gestartet werden können.
    Die Jobs müssen aus einem anderen Skript heraus geplant werden können -> commandline.

    Ich habe es mit "at" versucht, scheint aber deaktivert zu sein. Aktivieren konnte ich es nicht.
    Schöner wäre es natürlich, falls das ganze über launchd realisierbar wäre.

    Ich hoffe ihr könnt mir weiterhelfen :)

    Viele Grüße
    Julian
     
  2. plaetzchen

    plaetzchen Kaiserapfel

    Dabei seit:
    21.10.05
    Beiträge:
    1.729
    iCal und als Erinnerung einen Script starten...
     
  3. MX-Julian

    MX-Julian Golden Delicious

    Dabei seit:
    11.12.08
    Beiträge:
    8
    Danke für deine Antwort.
    Geht das auch "schöner" ?

    Zur Auswahl stehen ja eigentlich cron, at, launchd.

    Ich stelle die Fragen mal etwas konkreter:

    1) Kann launchd einmalige Jobs planen ?
    2) Wie kann man at aktivieren ?

    Grüße
     
  4. Pii

    Pii Rheinischer Krummstiel

    Dabei seit:
    25.06.07
    Beiträge:
    383
    launchd ist was Du suchst.
     
  5. Pii

    Pii Rheinischer Krummstiel

    Dabei seit:
    25.06.07
    Beiträge:
    383
    Nein, launchd ersetzt sämtliche event-, zeitlich- oder periodisch gesteuerten Daemons.

    zu 1: ja
    zu 2: unwarscheinlich
     
  6. Pii

    Pii Rheinischer Krummstiel

    Dabei seit:
    25.06.07
    Beiträge:
    383
    below gefällt das.
  7. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
  8. Pii

    Pii Rheinischer Krummstiel

    Dabei seit:
    25.06.07
    Beiträge:
    383
  9. vierundvierzig

    vierundvierzig Weisser Rosenapfel

    Dabei seit:
    30.08.07
    Beiträge:
    794
    Kleines Tutorial auch für dich "Pii", siehe Anhang. Bitte in Zukunft Deine Beiträge ändern und nicht jedesmal einen neuen hinzufügen. Macht es einfach übersichtlicher :)
     

    Anhänge:

  10. MX-Julian

    MX-Julian Golden Delicious

    Dabei seit:
    11.12.08
    Beiträge:
    8
    ich kenne sämtliche manuals.
    ich kenne lingon.

    Dennoch brauche ich eine Möglichkeit einen job über die commandline zu planen.

    Sprich:

    <jobplanner> <time> <script> <scriptparameter>

    Kann launchd das oder geht das nur über launchd.plist files?


    //edit: ich habe at aktiviert und kann den daemon nun nutzen. Zur not werde ich es über at lösen
     
  11. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    at wird dir über kurz oder lang bei einem Update von Apple um die Ohren fliegen. Und wenn Du man lanuchd und lingon und meinen o.g. Artikel kennen würdest, wüßtest Du auch wie launchd läuft und würdest nicht fragen.

    In einem - wahlfrei zu benennenden - .plist-File für launcd werden die Aufrufparameter reingeschrieben und von launchd anhand der dort ebenfalls gesetzten Parameter ausgeführt.

    Gruß Stefan
     
  12. MX-Julian

    MX-Julian Golden Delicious

    Dabei seit:
    11.12.08
    Beiträge:
    8
    nicht gleich pampig werden.
    Aber hättest du meinen Beitrag gelesen wüsstest du, dass ich kein plist file anlegen will und kann.

    ich bin durchaus in der lage eine launchd.plist zu basteln und auch mit launchctl zu laden.. (auch ohne lingon) :D

    allerdings ist ein plist nicht die lösung, da die jobs zu unterschiedlichen zeiten ausgeführt werden sollen und immer andere parameter übergeben werden.

    Der genaue Ablauf
    Ein Skript liest eine Datenbank aus. In der Datenbank steht Zeit und der zu übergebende Parameter.
    Danach soll zu genau dieser Zeit, wie sie in der Datenbank steht ein Job geplant werden. Der Job soll immer das gleiche Skript ausführen allerdings mit dem Parameter aus der Datenbank.
     
  13. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    dann laß doch das perl-script das .plist-File schreiben und loaden. Wo ist das Problem?

    Gruß Stefan
     
  14. MX-Julian

    MX-Julian Golden Delicious

    Dabei seit:
    11.12.08
    Beiträge:
    8
    Hallo,

    plist:
    1)schreiben
    2)loaden
    3)ausführen
    4)löschen (falls nicht überschwemm ich den ordner)

    ist nicht das schönste aber den weg hatte ich mir aber auch erdacht.. gefällt mir zwar nicht sonderlich aber naja
     
  15. nowies

    nowies Niederhelfenschwiler Beeriapfel

    Dabei seit:
    01.05.07
    Beiträge:
    854
    Moin,

    unter Tiger konnte/kann man AT mit :
    sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
    aktivieren.

    Ob es unter Leo noch so ist,wäre ja mal einen Versuch wert.
    (greift aber indirekt ins Powermanagement ein,da cron AT jede Minute einmal abfragt)

    Es gibt noch " sleep" : sleep $WarteZeit; $Befehl

    (Ich habe natürlich keine Ahnung,wie deine Datenbank aufgebaut ist....)

    nowies
     
  16. MX-Julian

    MX-Julian Golden Delicious

    Dabei seit:
    11.12.08
    Beiträge:
    8
    Hallo,

    ja genauso habe ich es dann auch geschafft at zu aktivieren.

    Danke :)

    Falls es keine schöne Alternative zu at gibt werde ich diesen Befehl nutzen.
    Den Weg über launchd halte ich für unschön.

    Grüße
     
  17. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    In /System/Library zu editieren, ist eine ganz unratsame Idee. Sinnvoll wäre es, den Dämon unter /Library/LaunchDaemons anzulegen. Warum und wieso beschreibe ich hier:
    http://www.macmark.de/osx_launchd.php
     
  18. MX-Julian

    MX-Julian Golden Delicious

    Dabei seit:
    11.12.08
    Beiträge:
    8
    Ok, sehe ich ein. Werde den Daemon auch nun in /Library/LaunchDaemons kopieren und von dort aus starten.

    Dennoch komme ich anscheinend für mein Problem um at nicht drumherum oder?

    Viele Grüße und Danke für Eure Hilfe
     
  19. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Denkbar wäre auch, über launchd jede Stunde ein Skript zu starten, das die Datenbank abfragt, welche Ergeignisse für diese Stunde geplant sind, und diese dann per "at" zu starten.
    Launchd ist eher für periodische Aufgaben und Ereignissteuerung geeignet und nicht unbedingt als Datenbank mit Einzel-Terminen.
     
  20. MX-Julian

    MX-Julian Golden Delicious

    Dabei seit:
    11.12.08
    Beiträge:
    8
    Genau das ist der Weg den ich gehe.
    Das Skript wird über launchd (StartInterval gestartet) , allerdings nicht nur jede Stunde :)
    at startet dann ebenfalls ein Skript. Ist mitlerweile voll funktionsfähig. Also Danke an alle die mir helfen konnten.

    Danke Für die Bestätigung Mark!
     
    MacMark gefällt das.

Diese Seite empfehlen