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
patpro ~ Patrick Proniewski
In article <1hjgasp.pt2a9irxnkrnN%,
(Une bévue) wrote:

#!/usr/bin/env ruby


c'est sûrement la cause de ton malheur.

patpro

--
http://www.patpro.net/

Avatar
luc
Une bévue wrote:

soit une crontab :


<http://developer.apple.com/macosx/launchd.html>

:)

--
Luc Heinrich

Avatar
pere.noel
patpro ~ Patrick Proniewski wrote:


c'est sûrement la cause de ton malheur.


je m'en doutais un peu, car c'est exécuté par root donc les env ne sont
pas les mêmes...

en changeant le shebang to :

#!/opt/local/bin/ruby

ça roule !

merci bien ;-)
--
une bévue

Avatar
patpro ~ Patrick Proniewski
In article <1hjgbnx.tupke61d2d39rN%,
(Une bévue) wrote:

patpro ~ Patrick Proniewski wrote:


c'est sûrement la cause de ton malheur.


je m'en doutais un peu, car c'est exécuté par root donc les env ne sont
pas les mêmes...


non, c'est utilisé par cron, avec les privilèges de root. Tu pourras
mettre ce que tu veux dans l'environnement de root, ce ne sera pas vu
par cron.

en changeant le shebang to :

#!/opt/local/bin/ruby

ça roule !


c'est l'essentiel ;)


patpro

--
http://www.patpro.net/


Avatar
pere.noel
Luc Heinrich wrote:

<http://developer.apple.com/macosx/launchd.html>

:)


OK, je lis ça ))

c'est pour mon appli qui lance MacSOUP périodiquement (toutes les 5, 15,
30 ou 60 minute) sur un certain nb de serveurs l'un à la suite de
l'autre.

c'est une appli en RubyCocoa...

les threads en rubycocoa ça foire...

il y a bien une classe crontab en ruby mais elle ne rend pas la main si
bien que l'UI reste figée...


donc j'essaie une cron classique ou launchd

--
une bévue

Avatar
pere.noel
patpro ~ Patrick Proniewski wrote:


non, c'est utilisé par cron, avec les privilèges de root. Tu pourras
mettre ce que tu veux dans l'environnement de root, ce ne sera pas vu
par cron.


ok j'avais vu des perms root sur le fichier cron "yvon" d'où ma
"croyance"...

--
une bévue

Avatar
laurent.pertois
Une bévue wrote:

Luc Heinrich wrote:

<http://developer.apple.com/macosx/launchd.html>

:)


OK, je lis ça ))


Et télécharge donc Lingon après :

<http://lingon.sourceforge.net/>

--
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:


Et télécharge donc Lingon après :

<http://lingon.sourceforge.net/>


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


--
une bévue

Avatar
pere.noel
Luc Heinrich wrote:

<http://developer.apple.com/macosx/launchd.html>


ça manque de clarté, quel est le lien entre le fichier plist et le job
que je veux lancer ???

le Label de la plist donne le nom du job , le script ?

j'ai mis ça :

--- script "launchd-plist.rb" ------------------------------------------
require 'rubygems'
require_gem 'plist'

LAUNCH_AGENTS_DIR=ENV['HOME']+"/Library/LaunchAgents"
h={}
h['Label']="#{LAUNCH_AGENTS_DIR}/org.ytho.MacSOUPSwitcherLoop-0.3.rb"
h['ProgramArguments']={ 'AS_DIR' =>
"/Users/yvon/work/RubyCocoa/MacSOUPSwitcher/AS",
'latency' => 5,
'auto' => true,
'files' =>
["/Users/yvon/MacSOUP_proxad/proxad",
"/Users/yvon/MacSOUP_eclipse/eclipse",
"/Users/yvon/MacSOUP_news.individual.net/individual"]
}

h['LowPriorityIO']=true
h['Nice']=1
h['StartInterval']={ 'Minute' => "*/5",
'Hour' => "*",
'Day' => "*",
'Month' => "*"
}
h['Disabled']úlse

h.save_plist("#{LAUNCH_AGENTS_DIR}/org.ytho.MacSOUPSwitcherLoop-0.3.plis
t")
------------------------------------------------------------------------

ce qui me donne comme plist :

--- org.ytho.MacSOUPSwitcherLoop-0.3.plist -----------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.ytho.MacSOUPSwitcherLoop-0.3.rb</string>
<key>LowPriorityIO</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>ProgramArguments</key>
<dict>
<key>AS_DIR</key>
<string>/Users/yvon/work/RubyCocoa/MacSOUPSwitcher/AS</string>
<key>auto</key>
<true/>
<key>files</key>
<array>
<string>/Users/yvon/MacSOUP_proxad/proxad</string>
<string>/Users/yvon/MacSOUP_eclipse/eclipse</string>

<string>/Users/yvon/MacSOUP_news.individual.net/individual</string>
</array>
<key>latency</key>
<integer>5</integer>
</dict>
<key>StartInterval</key>
<dict>
<key>Day</key>
<string>*</string>
<key>Hour</key>
<string>*</string>
<key>Minute</key>
<string>*/5</string>
<key>Month</key>
<string>*</string>
</dict>
</dict>
</plist>

------------------------------------------------------------------------

ensuite le "script que je lance :

--- script org.ytho.MacSOUPSwitcherLoop-0.3.rb -------------------------
#!/opt/local/bin/ruby

p "org.ytho.MacSOUPSwitcherLoop-0.3.rb"

ENV.each_pair {|k,v| p "#{k} => #{v}"}
------------------------------------------------------------------------

donc juste pour voir si je récupère bien mes vars d'ENV...

et le lance par :

launchd bash
launchctl load /Users/yvon/Library/LaunchAgents/
org.ytho.MacSOUPSwitcherLoop-0.3.plist


et j'obtiens :

yvon-thoraval:~/Library/LaunchAgents yvon$ launchd[972]:
org.ytho.MacSOUPSwitcherLoop-0.3.rb: exited abnormally: Bus error
launchd[972]: org.ytho.MacSOUPSwitcherLoop-0.3.rb: 9 more failures
without living at least 60 seconds will cause job removal
launchd[972]: org.ytho.MacSOUPSwitcherLoop-0.3.rb: exited abnormally:
Bus error

[...]

launchd[972]: org.ytho.MacSOUPSwitcherLoop-0.3.rb: too many failures in
succession


pour un truc aussi simple ???

c'est les "p" (print) que n'aime pas launchd ???
--
une bévue

Avatar
pere.noel
Une bévue wrote:

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


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>


et pour le timing :

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


ça c'est lancé une fois au bout de 5mn...
... quand je voudrais que ça se lance TOUTES les 5 mn.
StartInterval à revoir ???
--
une bévue

1 2 3 4 5