Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

HOME et plist

10 réponses
Avatar
unbewusst.sein
launchd lance un de mes scripts par :

<key>ProgramArguments</key>
<array>
<string>/Users/yt/bin/MacSOUP_random_signature.rb</string>
</array>


où le PATH du script est en dur, y a t'il un moyen, avec une plist lue
par launchd d'utiliser une variable d'environnement comme $HOME comme on
le fait dans un script shell ???
--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)

10 réponses

Avatar
Patrick Stadelmann
In article <1jga5ao.1rz9g2a1x2c0fkN%,
(Une Bévue) wrote:

launchd lance un de mes scripts par :

<key>ProgramArguments</key>
<array>
<string>/Users/yt/bin/MacSOUP_random_signature.rb</string>
</array>


où le PATH du script est en dur, y a t'il un moyen, avec une plist lue
par launchd d'utiliser une variable d'environnement comme $HOME comme on
le fait dans un script shell ???



launchd ne lance pas des process pour un utilisateur donné, il travaille
au niveau système. Donc de toute façon l'expansion ne serait pas
correcte.

Patrick
--
Patrick Stadelmann
Avatar
unbewusst.sein
Patrick Stadelmann wrote:


launchd ne lance pas des process pour un utilisateur donné, il travaille
au niveau système. Donc de toute façon l'expansion ne serait pas
correcte.



OK, donc je n'ai pas intérêt, si je souhaite "universaliser", de laisser
mon fichier "MacSOUP.signatures.launchd.plist" sous mon HOME càd dans
"/Users/yt/Library/LaunchAgents" mais plutôt dans
"/Library/LaunchAgents".

idem pour mon script qui est "/Users/yt/bin/MacSOUP_random_signature.rb"
mieux vaut le placer dans "/usr/local/bin".

Par contre, problème ce script fait appel à un fichier dépendant de
l'utilisateur "/Users/yt/Library/Preferences/MacSOUP.signatures.txt" qui
serait d'ailleurs mieux dans "/Users/yt/Library/Application
Support/MacSOUP", mon script, suposément dans
"/usr/local/bin/MacSOUP_random_signature.rb" n'aura pas accès au HOME de
l'utilisateur car lancé par aunchd ? Si tout de même vu que j'ai dedans
:

ACCOUNTS_FILE = "#{ENV['HOME']}/Documents/MacSOUP_settings/Incoming
Mail/Accounts"
SIGNATURES_FILE "#{ENV['HOME']}/Library/Preferences/MacSOUP.signatures.txt"
LOG_FILE = "#{ENV['HOME']}/Library/Logs/MacSOUP.signatures.log"


dans l'état actuel ???
--
« Comment peser sur le bulletin?
Tu t'assieds dessus. »
(Anonyme)
Avatar
blanc
Patrick Stadelmann wrote:

launchd ne lance pas des process pour un utilisateur donné, il travaille
au niveau système. Donc de toute façon l'expansion ne serait pas
correcte.



Le lancement par cron n'est-il plus possible sous SL ?
Car avec cron pas de problème, on peut avoir une crontab pour chaque
utilisateur.

--
JiPaul.
/ /--/--// Jean-Paul Blanc
|/| L | quelquepart en (somewhere in)
/|| = ||| FRANCE
Avatar
Franck
On 01/04/2010 18:30, Patrick Stadelmann wrote:
launchd ne lance pas des process pour un utilisateur donné



Bah si, ça s'appelle les "User Agents" et "User Daemons". Chaque
utilisateur peut avoir son propre set de process lancés par launchd, en
plus de ceux du système, communs à tous les utilisateurs.
Avatar
unbewusst.sein
Franck <franck+ wrote:


Bah si, ça s'appelle les "User Agents" et "User Daemons". Chaque
utilisateur peut avoir son propre set de process lancés par launchd, en
plus de ceux du système, communs à tous les utilisateurs.



perso, comme il me semble que cela n'a pas été vraiment prévu, je
considère ça comme un bug, de conception... même pas une "annoying
feature".
--
« Le verbe aimer est difficile à conjuguer :
son passé n'est pas simple, son présent n'est qu'indicatif,
et son futur est toujours conditionnel. » (Jean Cocteau)
Avatar
Franck
On 02/04/2010 09:50, Une Bévue wrote:
perso, comme il me semble que cela n'a pas été vraiment prévu



C'est pourtant officiellement documenté...

<http://developer.apple.com/mac/library/technotes/tn2005/tn2083.html>
Avatar
Patrick Stadelmann
In article <4bb596d7$0$24830$,
Franck <franck+ wrote:

On 01/04/2010 18:30, Patrick Stadelmann wrote:
> launchd ne lance pas des process pour un utilisateur donné

Bah si, ça s'appelle les "User Agents" et "User Daemons". Chaque
utilisateur peut avoir son propre set de process lancés par launchd, en
plus de ceux du système, communs à tous les utilisateurs.



Oui, j'aurais dû écrire "ne lance pas des process COMME un utilisateur".
launchd est un process système, il ne connaît donc pas les variables
d'environnement des utilisateurs. Par contre, les scripts ou commandes
lancées par l'agent y auront accès.

Patrick
--
Patrick Stadelmann
Avatar
Patrick Stadelmann
In article <4bb5a9c4$0$694$,
Franck <franck+ wrote:

On 02/04/2010 09:50, Une Bévue wrote:
> perso, comme il me semble que cela n'a pas été vraiment prévu

C'est pourtant officiellement documenté...

<http://developer.apple.com/mac/library/technotes/tn2005/tn2083.html>



Tu parles de l'utilisation d'agents par les utilisateurs, ou de l'accès
au variable d'environnement ? Parce que je n'ai rien vu pour ce deuxième
point...

Patrick
--
Patrick Stadelmann
Avatar
Franck
On 02/04/2010 12:25, Patrick Stadelmann wrote:
Tu parles de l'utilisation d'agents par les utilisateurs,



Oui.

ou de l'accès au variable d'environnement ?



Non. Je n'ai rien vu également à ce sujet.
Avatar
unbewusst.sein
Patrick Stadelmann wrote:


Oui, j'aurais dû écrire "ne lance pas des process COMME un utilisateur".
launchd est un process système, il ne connaît donc pas les variables
d'environnement des utilisateurs. Par contre, les scripts ou commandes
lancées par l'agent y auront accès.



oui, c'est ce que je constate, empiriquement, du coup l'installation
d'un "launchd Agent" dans un rép User problématique pourtant la page :
<http://developer.apple.com/mac/library/technotes/tn2005/tn2083.html#SEC
LOGINITEM> donne :

Name :
per-user launchd agent

Session Type :
Background

Notes :
Runs in a context that's the parent of all contexts for a given user

je pense que ça correspond à mon cas.
--
« Le verbe aimer est difficile à conjuguer :
son passé n'est pas simple, son présent n'est qu'indicatif,
et son futur est toujours conditionnel. » (Jean Cocteau)