Profitez des offres Memoirevive.ch!
Lingon, le planificateur de tâches

Il y a bien longtemps de cela (dans une galaxie très très lointaine), je vous avais présenté Cronnix, la planificateur de tâches.

Ce logiciel proposait une interface assez simple au système cron présent dans la couche Unix de notre OS. Le but de cron était de gérer l’exécution de tâches à des intervalles de temps donnés. Entre autre, cron était chargé d’exécuter les scripts de maintenance de MacOS X.

A l’époque, je vous avais montré comment Cronnix pouvait être utilisé afin de planifier le lancement d’une application.

J’écris tout ceci au passé, car voyez-vous, c’est de l’histoire ancienne. Depuis Tiger, notre OS s’est modernisé et utilise à présent un nouveau système nommé launchd.

En fait, launchd est un “démon” (daemon), c’est-à-dire une petite application qui tourne en tâche de fond sur votre ordinateur et fait tranquillement son boulot sans que vous ne le sachiez.

Le lien que je vous ai donné ci-dessus vous amènera vers la page d’Apple qui explique comment personnaliser launchd pour qu’il exécute des tâches que vous aurez configurées. Tout se base sur des fichiers XML, comme c’est souvent le cas avec MacOS X. Ecrire un tel fichier XML n’est absolument pas impossible, mais ce n’est pas la manière la plus agréable de le faire.

Pour vous assister, je vous propose d’utiliser Lingon de Peter Borg.

Depuis sa version Léopard, Lingon est devenu une application magnifiquement belle et intuitive, utilisant les lignes graphiques proposées par Apple. Voyez plutôt:

La partie gauche de la fenêtre vous présente les quatres types de tâches pouvant être gérées par Lingon, à savoir trois types
“d’agents” (personnels, utilisateur et système), et un type de “démons”.

Comme je l’ai dit plus haut, un “démon” va simplement tourner en permanence en tâche de fond sur votre ordi. Les agents quant à eux seront des tâches executées selon un timing bien précis.

Pour comprendre la différence entre ces types de tâches, le plus simple est d’en créer une nouvelle. Vous verrez alors cette fenêtre:

Une tâche placée dans “My Agents” ne sera exécutée que pour vous et vous seul tandis qu’une tâche située dans “User Agents” sera lancée pour tous les utilisateurs de la machine.

Les “démons” sont un peu différents puisqu’ils seront lancés au démarrage.

Les tâches situées dans “System Agents” sont réservées au système et ne devraient pas être touchées. Si vous désirez le faire malgré tout, vous devrez passer outre cet avertissement:

Voyons à présent comment une tâche est configurée.

La zone principale de la fenêtre, située à droite, se divise en trois parties que nous allons regarder en détail. J’ai pris ici comme exemple une tâche appartenant à VMware Fusion.

Première partie: qui ?

Très simple. Il s’agit de trouver un nom à la tâche. Ce nom doit être unique et facilement identifiable, c’est pourquoi Apple propose d’utiliser la convention d’URL-inversée, comme c’est le cas avec les fichiers de préférences, par exemple.

Deuxième partie: quoi ?

C’est ici que vous allez indiquer la commande à exécuter. Il peut s’agir d’une commande shell (vous savez, comme dans le Terminal, ... mais non, François, reviens !), d’un script plus complexe ou d’une application que vous serez aller chercher en cliquant sur le bouton “Choose”.

Troisième partie: quand ?

Finalement, il faut décider quand la tâche sera exécutée. Et là, launchd montre toute sa supériorité face au vieux cron.

Les choix sont:

  • Faire tourner la tâche en permanence (un peu comme un démon)
  • Lancer la commande au démarrage ou à l’ouverture de session de l’utilisateur
  • Lancer la commande chaque fois qu’un volume est monté (image-disque, disque externe, DVD, CD, etc.)
  • Lancer la commande à une date précise (jour, mois, etc.)
  • Lancer la commande à un intervalle de temps donné (toutes les deux secondes, toutes les heures, etc.)
  • Lancer la commande lorsqu’un fichier est modifié
  • Lancer la commande lorsqu’un dossier est modifié

Vous le voyez, les possibilités sont très très vastes. En particulier, les deux dernières options en font un outil redoutable.

Dans l’exemple que j’ai pris, un script est lancé à chaque ouverture de session.

Si je voulais, par exemple, lancer Mail tous les matins à 9h15, j’utiliserais les réglages suivants:

Une fois une nouvelle tâche ainsi créée, il sera nécessaire de redémarrer la machine pour qu’elle soit prise en compte. Lingon vous en informera:

Comme vous pouvez le voir, Lingon est une application très élégante et très intuitive, même si elle n’existe qu’en anglais.

Il y a certes une fenêtre de préférences, mais celle-ci n’apporte que quelques réglages liés à la mise à jour automatique de l’application, à son apparence et aux dialogues d’avertissements:

Si vous avez besoin d’exécuter des tâches lors d’un événement précis ou en fonction d’un timing précis, alors launchd est fait pour vous et Lingon est la manière la plus simple d’y accéder.

Un seul regret: je ne suis pas parvenu depuis Lingon à supprimer une tâche, mais peut-être est-ce moi qui suis bête.

En tous les cas, Lingon est une application presque parfaite et qui plus est gratuite et open-source.

11 commentaires
1)
tioneb
, le 29.11.2007 à 00:24

durant mon petit backup du mercredi soir, je me suis dis: “allons faire un tour sur cuk.ch…des fois que…

et ben j’ai bien fait:

1. article super intéressant, qui me permet d’aller me coucher avec la douce impression d’avoir apris quelque chose…

2. je suis le premier, yes!!! :-)

2)
GG
, le 29.11.2007 à 00:28

Ça râle quand même pas mal sur les possibilités de Lingon : sa nouvelle version est plus jolie, mais bien moins complète que l’ancienne, et avec une justification foireuse.

Fort dommage, car sinon c’est un bon outil.

3)
pioum
, le 29.11.2007 à 09:22

GG, c’est quoi les fonctions qui ont disparus?

4)
guru
, le 29.11.2007 à 09:38

Mais alors, comment on fait quand une tâche elle commence à vous gonfler et que vous voulez l’occire?

5)
zito
, le 29.11.2007 à 10:21

Ce soft ne fait que créer des fichier *.plist pour chaque agent ou demon. Pour en effacer un, il suffit soit de le mettre à la corbeille avec le Finder soit d’utiliser le terminal. La commande pour afficher dans le Finder la tache sélectionnée dans Lingon est Cmd-U

6)
Nihao
, le 29.11.2007 à 12:05

Ouah. Merci pour l’article. Je vais l’utiliser des que possible.

7)
Fabien Conus
, le 29.11.2007 à 13:34

Oui, j’aurais dû l’ajouter à l’article, mais les “agents” se trouvent dans:

/Library/LaunchAgents /Users/username/LaunchAgents /System/Library/LaunchAgents (ce sont ceux qu’il ne faut pas toucher)

les démons se trouvent là:

/Library/LaunchDaemons

8)
Philippe Schmid
, le 29.11.2007 à 14:52

Mêmes remarques que GG. L’interface est peut-être plus jolie, mais on a perdu toutes les fonctionnalités “avancées” = les éléments utiles.

Attention également en particulier sous Tiger, Launchd pourrait aussi se nommer Bugd… SOus Leopard cela semble un peu mieux, à voir.

9)
Chichille
, le 29.11.2007 à 18:57

Le drame avec ce genre d’application indispensable, c’est que je ne sais pas quoi en faire ! Il y a les applis que je veux voir démarrer au départ: on va dans les préférences “compte”. Il y a les applis qui ont leur propre calendrier (sauvegarde, agenda, maintenances diverses…). Et il y a… le reste, que je lance quand j’en ai besoin.

Mais peut-être que je manque d’imagination.

10)
Guillôme
, le 29.11.2007 à 21:24

Merci pour cette présentation, je ne connaissais pas :)

11)
Zallag
, le 30.11.2007 à 16:25

Moi j’aime bien ton choix de l’expression le vieux cron .