2011-06-27 2 views
2

J'ai un script R que je veux exécuter en continu sur Ubuntu 10.10. J'essaye d'installer Monit pour m'assurer qu'il ne tombe pas. Comme le script démarre, il crée un fichier pid avec les lignes:Comment utiliser Monit pour faire fonctionner un script R?

pid <- max(system("pgrep -x R", intern = TRUE)) 
write(pid, "/var/run/myscript.pid") 

J'ai mis en place Monit avec les lignes:

check process myscript with pidfile /var/run/myscript.pid 
start program = "/usr/bin/R --vanilla </home/me/myscript.R> /home/me/myscript.out 2>&1" 

Monit commence bien, mais quand je tue le processus de R , le processus R n'est pas redémarré. Je fais évidemment quelque chose de mal. Est-ce dans la syntaxe pour démarrer le processus? J'ai remarqué que la documentation indique que Monit essaie d'abord d'arrêter le programme et je ne connais aucune commande pour arrêter un processus R. Peut-être que la ligne ci-dessus pour démarrer le programme fonctionne quand il est dans le crontab pour l'utilisateur root, mais pas quand il est démarré à partir de mon utilisateur crontab

Tout conseil grandement apprécié.

+1

Etes-vous sûr que le fichier PID est en cours de création? Avez-vous exécuté monit en mode verbeux? Êtes-vous capable d'utiliser monit pour arrêter, démarrer et redémarrer le processus (en utilisant monit stop/start/restart myscript)? Le fichier PID est-il lisible par l'utilisateur Monit? Je pense que l'exécution de monit en mode verbeux sera utile. – bmatheny

+0

Merci. Ces commentaires m'ont aidé à résoudre certains problèmes. Monit ne fonctionnait pas en raison d'une erreur ailleurs. J'ai en fait deux scripts, l'un d'eux commence par monit start myscript -v et le pidfile est créé, mais l'autre ne le fait pas et ne crée aucun fichier pid. A l'origine j'ai eu une faute de frappe dans la commande de démarrage pour celui qui ne fonctionne pas. Maintenant, je soupçonne que l'erreur est mise en cache quelque part parce qu'elle ne commencera pas même après l'avoir corrigée. – MiG62

+2

Oui. 9 fois sur 10 quand j'ai un problème de monit, je trouve que ce n'est pas un problème de monit :) Bonnes choses, content que ce soit corrigé. – bmatheny

Répondre

0

Je ne peux pas commenter sur Monit, mais il y a un bon article par Andrew Robinson dans R News sur l'utilisation des outils linux/unix pour surveiller R. En particulier, screen et mail pourraient être utiles pour votre application.

+1

Merci. L'écran et le courrier sont certainement des outils utiles que je peux utiliser, mais il ne semble pas que je puisse les utiliser pour redémarrer un script. – MiG62

Questions connexes