OVH Cloud OVH Cloud

crontab et fichier ruby ???

47 réponses
Avatar
pere.noel
soit une crontab :

> crontab -l
*/5 * * * * /Users/yvon/work/RubyCocoa/MacSOUPSwitcher/SH/loop.rb

qui lance "loop.rb" toutes les 5 mn

les perms de loop.rb :

> ls -al loop.rb
-rwxr-xr-x 1 yvon yvon 1395 Aug 2 16:02 loop.rb

rien n'est lancé...

par contre si je fais :

> /Users/yvon/work/RubyCocoa/MacSOUPSwitcher/SH/loop.rb

le script fait bien ce que je veux ???

la première ligne de mon script spécifie le ruby à utiliser :

#!/usr/bin/env ruby

si dans la crontab je remplace :
"/Users/yvon/work/RubyCocoa/MacSOUPSwitcher/SH/loop.rb"

par :

open "/path/to/index.html"

j'ai bien le ichier "index.html" qui est ouvert dans mon navigateur par
défaut...

je ne vois pas d'où vient le problème...
--
une bévue

10 réponses

1 2 3 4 5
Avatar
laurent.pertois
Une bévue wrote:

merci beaucoup, mais cette appli crash au 1ier lancement )))


Etrange, ici en 10.4.7, toutes mises à jour système effectuée, la
version 1.1.1 de Lingon fonctionne sans soucis. Il faudrait que tu
contactes le développeur, peut-être.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
pere.noel
Laurent Pertois wrote:


Etrange, ici en 10.4.7, toutes mises à jour système effectuée, la
version 1.1.1 de Lingon fonctionne sans soucis. Il faudrait que tu
contactes le développeur, peut-être.


MacOS X a provoqué un bugg report auto...

tu connais l'argument à mettre dans la plist pour que le script se lance
toutes les n minutes ?

perso j'ai mis :
<key>StartInterval</key>
<integer>60</integer>

pour une minute, c'est ce que fait "" un concurant de lingon...

mais mon script ne s'est lancé qu'une fois...

--
une bévue

Avatar
pere.noel
Une bévue wrote:

tu connais l'argument à mettre dans la plist pour que le script se lance
toutes les n minutes ?

perso j'ai mis :
<key>StartInterval</key>
<integer>60</integer>

pour une minute, c'est ce que fait "" un concurant de lingon...

mais mon script ne s'est lancé qu'une fois...


non c'est OK pour "StartInterval" par contre, je ne retrouve pas tous
mes arguments, dans la plist j'ai :

<key>ProgramArguments</key>
<array>

<string>AS_DIR="/Users/yvon/work/RubyCocoa/MacSOUPSwitcher/AS"</string>
<string>auto=true</string>
<string>files="/Users/yvon/MacSOUP_proxad/proxad,
/Users/yvon/MacSOUP_eclipse/eclipse,
/Users/yvon/MacSOUP_news.individual.net/individual"</string>
</array>


donc 3 args, dans le script je ne fais que :

p Time.new
p $*
p $*.length

ça me retourne que 2 args... :

Wed Aug 02 19:25:08 CEST 2006
["auto=true", "files="/Users/yvon/MacSOUP_proxad/proxad,
/Users/yvon/MacSOUP_eclipse/eclipse,
/Users/yvon/MacSOUP_news.individual.net/individual""]
2


--
une bévue

Avatar
pere.noel
Une bévue wrote:

ça me retourne que 2 args... :

Wed Aug 02 19:25:08 CEST 2006
["auto=true", "files="/Users/yvon/MacSOUP_proxad/proxad,
/Users/yvon/MacSOUP_eclipse/eclipse,
/Users/yvon/MacSOUP_news.individual.net/individual""]
2


bon j'ai trouvé un "workaround' j'ajoute un dummy arg :
string>dummy=empty</string>
)))

bizarre cette histoire ;-)
--
une bévue

Avatar
laurent.pertois
Une bévue wrote:

MacOS X a provoqué un bugg report auto...


Qui part chez Apple, pas chez le développeur de Lingon...

tu connais l'argument à mettre dans la plist pour que le script se lance
toutes les n minutes ?


Ca :

perso j'ai mis :
<key>StartInterval</key>
<integer>60</integer>

pour une minute, c'est ce que fait "" un concurant de lingon...

mais mon script ne s'est lancé qu'une fois...


Il a fait une erreur, donc...

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
laurent.pertois
Une bévue wrote:

non c'est OK pour "StartInterval" par contre, je ne retrouve pas tous
mes arguments, dans la plist j'ai :


Si tu devais lancer ton truc manuellement, tu taperais quoi dans un
shell ?

PS : attention, il faut toujours donner tous les chemins dans launchd.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
laurent.pertois
Une bévue wrote:

j'ai changé ça en :

<key>Label</key>
<string>org.ytho.MacSOUPSwitcherLoop-0.3b</string>
<key>Program</key>
<string>org.ytho.MacSOUPSwitcherLoop-0.3.rb</string>


Program c'est ce qu'il doit exécuter, ton script se nomme réellement
comme ça ?

De plus, il faut mettre le chemin absolu.

et pour le timing :

<key>StartInterval</key>
<integer>500</integer>


ça c'est lancé une fois au bout de 5mn...


5min ? sûr ? pas 500 secondes ?

... quand je voudrais que ça se lance TOUTES les 5 mn.
StartInterval à revoir ???


Non, il a du bloquer.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
pere.noel
Laurent Pertois wrote:

Si tu devais lancer ton truc manuellement, tu taperais quoi dans un
shell ?


dans la version dont je parlais j'avais :

commande key1=value1 ... keym=valuem

et je ne retrouvais pas "key1=value1"

mais j'ai contourné le pb, je ne passe plus d'arguments ))

en fait depuis mon script je vais lire la plist qui lance launchd pour
ce script c'est simple à faire en ruby :

@h=Plist.parse_xml(LAUNCHD_PLIST)['ProgramArguments']

même en utilisant "Lingon" pour lancer le script, j'ai ce pb (contourné)
du 1ier arg qui disparaît...

PS : attention, il faut toujours donner tous les chemins dans launchd.


absolus tu veux dire ?
oui c'est ce que je fais...
--
une bévue

Avatar
pere.noel
Laurent Pertois wrote:
MacOS X a provoqué un bugg report auto...


Qui part chez Apple, pas chez le développeur de Lingon...


c'est idiot ça !
je lui ai envoyé un mail, il a suffit que je supprime ma plist de
~/Library/LaunchAgents pour qu'il démarre...

Il a fait une erreur, donc...


mouais, quand je le lance depuis le term, il marche impec !!!

pas avec launchd où j'obtiens :

launchd[3293]: org.ytho.MacSOUPSwitcherLoop-0.3: respawning too quickly!
throttling
[...]
launchd[3293]: org.ytho.MacSOUPSwitcherLoop-0.3: respawning too quickly!
throttling
launchd[3293]: org.ytho.MacSOUPSwitcherLoop-0.3: too many failures in
succession

(le script a été testé en dehors de launchd MAIS peut-être qua ça
provient du fait que j'ai :

`launchctl load "#{LAUNCHD_PLIST}" &`

et à la page <http://developer.apple.com/macosx/launchd.html> Mr Apple
dit :
Furthermore, they should not do the things normally required of daemon
processes, such as detaching from the terminal they are initially
attached to.


je viens d'essayer sans détacher : même résultat ))
--
une bévue


Avatar
pere.noel
Laurent Pertois wrote:


Program c'est ce qu'il doit exécuter, ton script se nomme réellement
comme ça ?

De plus, il faut mettre le chemin absolu.



oui, mais là, j'essayais dans le bon répertoire en faisant des :

launchd bash
launchctl load <la_plist>



et pour le timing :

<key>StartInterval</key>
<integer>500</integer>


ça c'est lancé une fois au bout de 5mn...


5min ? sûr ? pas 500 secondes ?


oui... no comment !

... quand je voudrais que ça se lance TOUTES les 5 mn.
StartInterval à revoir ???


Non, il a du bloquer.


je viens de m'apercevoir que je fais :

`launchctl load "#{LAUNCHD_PLIST}" &`

or apple dit qu'il ne faut pas détacher conrairement aux daemons
habituels.

je viens juste de faire un essai ; même résultat ))

launchd[3326]: org.ytho.MacSOUPSwitcherLoop-0.3: respawning too quickly!
throttling
launchd[3326]: org.ytho.MacSOUPSwitcherLoop-0.3: 9 more failures without
living at least 60 seconds will cause job removal
[...]
launchd[3326]: org.ytho.MacSOUPSwitcherLoop-0.3: respawning too quickly!
throttling
launchd[3326]: org.ytho.MacSOUPSwitcherLoop-0.3: too many failures in
succession

je ne pige pas ce qui se passe...

--
une bévue


1 2 3 4 5