3 votes

Lancer l'application en premier plan ne fonctionne pas depuis cron, mais fonctionne depuis le terminal

J'ai ce qui suit :

* * * * * open -a /Applications/TextWrangler.app/  ~/notes.txt; open /Applications/Notes.app

Aucune des 2 applications ne met l'accent sur l'avant-plan (bien qu'elles soient lancées en arrière-plan) donc tout le processus est un peu inutile (c'est pour me rappeler de prendre des notes à la fin de chaque journée de travail).

Cela fonctionne si je copie et colle les commandes dans un terminal. Alors pourquoi cron se comporte-t-il différemment et cela peut-il être changé ?

0 votes

Essayez reattach-to-user-namespace (disponible sur homebrew et ailleurs)

2 votes

Les tâches cron peuvent s'exécuter en tant qu'utilisateur, mais ne font pas réellement partie de votre session utilisateur. Pourriez-vous utiliser un Agent de Lancement à la place?

1 votes

Sur macOS High Sierra, * * * * * open -a TextWrangler ~/notes.txt; open -a Notes; fonctionne tel quel pour moi, les deux applications viennent en premier plan. Essayez d'ajouter ; osascript -e 'tell app "TextWrangler" to activate' -e 'tell app "Notes" to activate' à la fin de votre commande existante et voyez si cela fait une différence.

2voto

user3439894 Points 52496

Pour moi sur macOS High Sierra, par exemple:

 * * * * * open -a TextWrangler ~/notes.txt; open -a Notes

fonctionne tel quel, les deux applications viennent au premier plan.

Essayez d'ajouter, par exemple:

; osascript -e 'tell app "TextWrangler" to activate' -e 'tell app "Notes" to activate'

à la fin de votre commande existante et voyez si cela fait une différence, par exemple:

* * * * * open -a TextWrangler ~/notes.txt; open -a Notes; osascript -e 'tell app "TextWrangler" to activate' -e 'tell app "Notes" to activate'

0 votes

Personnellement, je mettrais ces commandes dans un fichier de script shell et appellerais le script shell à partir de cron. Cela rendrait beaucoup plus facile à éditer et à formater, sans avoir à se soucier du formatage de cron ou de quoi que ce soit.

1 votes

@TJ Luoma, Je ne suis pas en désaccord, cependant cela fonctionne tel quel et comme on dit, si ce n'est pas cassé, ne le réparez pas, mais c'est à Sridhar Sarnobat de décider comment il veut gérer ça. (Il m'a demandé de publier mon commentaire sur son OP en tant que réponse, donc je l'ai fait.)

1 votes

J'ai appris à mes dépens que les scripts shell pour simplifier les entrées cron sont contre-productifs. Vous finissez par avoir du mal à localiser le coupable d'un comportement étrange causé par une commande enfouie dans un script shell au nom trompeur ;)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X