Outils de développement · Générateur Crontab
@reboot, @daily, @hourly : d'où viennent les plannings de surnoms de cron
· Contexte
cron Calendrier pseudonymes planification
Les raccourcis @ sont lisibles, populaires et non universels. Cet article explique ce que chacun développe, d'où ils viennent, le cas particulier de @reboot et quand écrire les cinq champs à la place.
@reboot est refusé car l'outil prévisualise les heures du calendrier, pas les événements de démarrage
`@reboot` ressemble aux autres formulaires d'arobase mais n'a pas d'extension de calendrier à cinq champs dans ToolAcre. L'analyseur le refuse pour une raison explicite : il n'y a pas de planning à prévisualiser. Un événement de démarrage dépend du cycle de vie d'une machine ou d'un service que cette route de navigateur n'observe ni ne contrôle.
Cette distinction permet de conserver l'honnêteté de la liste des prochaines exécutions. Les alias de calendrier peuvent devenir des champs et des dates concrets. Un alias de redémarrage ne peut pas produire cinq futurs candidats d'horloge murale à partir de l'instant actuel sans inventer de futurs redémarrages. Le refus est donc plus précis qu’un aperçu vide ou fabriqué.
Les surnoms et leurs extensions — @hourly, @daily et @midnight, @weekly, @monthly, @yearly et @annually comme équivalents à cinq champs
Le tableau pris en charge est exact. `@hourly` devient `0 * * * *` ; `@daily` et `@midnight` deviennent `0 0 * * *` ; `@weekly` devient `0 0 * * 0` ; `@monthly` devient `0 0 1 * *` ; et `@yearly` plus `@annually` deviennent `0 0 1 1 *`.
L'interface utilisateur résout un alias accepté avant de copier les valeurs dans les cinq zones individuelles. L'analyse renvoie l'expression normalisée à cinq champs, les descriptions utilisent cette forme analysée et les tests parcourent chaque alias. L’expansion est donc inspectable plutôt qu’un raccourci caché.
Aucun comportement de démarrage de démon ou de démarrage du système n'est modélisé
Aucun code de ce chemin ne reçoit les événements de démarrage du système d'exploitation. Il n'y a pas de processus démon, d'identifiant de démarrage ou de graphique de dépendance de service. Les déclarations du classeur concernant le moment où `@reboot` s'exécute ne peuvent pas être établies à partir d'un analyseur qui rejette délibérément le jeton.
Si une cible prend en charge un pseudo de démarrage, consultez la définition du cycle de vie de cette cible et testez-la en toute sécurité. N'utilisez pas l'erreur de ToolAcre comme preuve que la fonctionnalité est universellement invalide, et n'utilisez pas le support d'une autre implémentation comme preuve que cette route doit la prévisualiser.
Les origines des alias et la propagation entre les implémentations nécessitent des sources historiques externes
Le classeur attribuait des alias à une implémentation historique et décrivait leur propagation. Le référentiel ne contient aucune source d'historique principale pour cette revendication. Ce que cela prouve, c'est un comportement au présent : sept clés dans `ALIASES`, recherche insensible à la casse et rejet des raccourcis inconnus.
Cela suffit pour une documentation pratique. Les lecteurs peuvent voir exactement quels formulaires fonctionnent ici et vers quoi ils s'étendent. La provenance peut être ajoutée ultérieurement avec une source d'archives ; il ne doit pas être déduit d'un nom de constante ou de la popularité d'une syntaxe similaire ailleurs.
Exemple concret : remplacer @daily par 0 0 * * * — et pourquoi le formulaire explicite vous permet également de décaler l'heure de minuit
Le remplacement de `@daily` par `0 0 * * *` expose les champs d'heure. Changer l'heure de 0 à 4 produit `0 4 * * *`, que l'outil décrit comme 04:00 chaque jour. La forme explicite est meilleure lorsque minuit n'est pas l'heure prévue au mur.
Les zones de champ facilitent cet ajustement et le fuseau horaire sélectionné contrôle les instants de prévisualisation. L'expression copiée ne contient aucun alias après développement dans le résultat de l'analyseur, mais le texte original peut rester dans la zone d'expression entière jusqu'à ce qu'un champ soit modifié. Vérifiez la valeur réelle copiée avant le déploiement.
L'ordre et les dépendances au démarrage sont en dehors du générateur
Le travail de démarrage dépend souvent des systèmes de fichiers, des réseaux, des informations d'identification ou d'autres services. ToolAcre n'a pas de modèle de dépendance et ne peut pas évaluer l'état de préparation, les retards ou le comportement de redémarrage. Même si elle acceptait `@reboot`, la validation de l'expression ne résoudrait pas ces questions opérationnelles.
Traitez l'exécution au démarrage comme une conception de cycle de vie plutôt que comme un raccourci de calendrier. Documentez les conditions préalables et la gestion des échecs dans l’environnement cible. Le générateur reste approprié pour les programmes récurrents à cinq champs dont les prochaines heures d'horloge murale peuvent réellement être calculées.
Les alternatives au gestionnaire de services ne sont pas évaluées ici
Le classeur pointait vers des unités de service modernes, mais ce référentiel ne les construit ni ne les compare. Aucune syntaxe unitaire, directive de dépendance ou test de démarrage ne figure parmi les sources. L’article évite donc de recommander un remplacement basé uniquement sur un pseudo non pris en charge.
Choisissez un mécanisme de cycle de vie à partir de la documentation cible et des exigences opérationnelles. La contribution de ToolAcre est la limite négative : `@reboot` est en dehors de son domaine prévisualisable, tandis que les alias de calendrier ordinaires ont des équivalents transparents à cinq champs.
À retenir : les surnoms sont du sucre pour les expressions fixes - et le générateur vous permet de créer la version explicite et de la relire
Les alias sont des étiquettes concises pour les expressions fixes dans cette implémentation. Développez-les chaque fois que la révision ou la personnalisation bénéficie de la visualisation des positions. `@daily` n'est pas magique ; il est minuit dans tous les champs de calendrier sans restriction sous la zone d'aperçu sélectionnée.
Utilisez la liste prise en charge, inspectez l'expansion et éloignez-vous de minuit le cas échéant. Pour les événements de démarrage, arrêtez et sélectionnez un mécanisme spécifique à la cible au lieu de forcer un déclencheur de cycle de vie non prévisible dans un générateur de calendrier. Cette limite est délibérée et testée.