2011-04-13 5 views
0

J'essaie d'utiliser la fonctionnalité Shebang du script de données utilisateur EC2 pour mettre à jour un référentiel SVN déjà extrait sur l'image EBS de l'instance, puis exécuter d'autres commandes. Le script plante constamment pendant la commande svn up, laissant la plupart ou la totalité des fichiers du référentiel dans un état verrouillé. Aucune des commandes après l'exécution de la commande svn up.Le script de données utilisateur EC2 se bloque lors de la mise à jour SVN

Mon script de données utilisateur ressemble à ceci:

#!/bin/bash 
echo "about to update..." >> /home/ubuntu/test.log 
svn up /home/ubuntu/path/to/repository 
echo "update finished" >> /home/ubuntu/test.log 

Le haut svn n'a pas terminé correctement et la deuxième commande echo n'exécute pas.

Je ne vois aucune erreur dans les journaux (je ne suis pas sûr exactement quels journaux je devrais récurer, mais j'ai regardé à travers tous les journaux les plus évidents). Des idées pour lesquelles svn échouerait?

+0

Notez que si je lance le script de données utilisateur à partir de la ligne de commande dès que j'applique ssh sur la machine, il s'exécute correctement. – mateolargo

+0

Essayez: cd/home/ubuntu/path/to/repository; svn nettoyage; svn update –

Répondre

0

J'ai finalement trouvé un moyen de faire fonctionner cela. Au lieu d'appeler svn up directement dans mon script de données d'utilisateur, je compilé une application simple C qui fait la place svn et exécuter que dans le script de données d'utilisateur à la place:

#include <stddef.h> 
#include <stdlib.h> 
#include <unistd.h> 
int main(void) { 
    execl("/usr/bin/svn", "svn", "update", "/path/to/repository/", (const char *) NULL); 
    return(EXIT_SUCCESS); 
} 

Malheureusement, je ne suis pas tout à fait sûr pourquoi cela fonctionne . J'ai pensé essayer parce que nous avions un problème similaire dans un hook post-commit SVN qui nécessitait la même solution.

0

Problème d'autorisations? Essayez:

sudo svn up ... 
+0

Je pensais que c'était peut-être un problème d'autorisations, mais j'ai vérifié que le script user-data est toujours exécuté en tant que root. – mateolargo

+0

Dans ce cas, je ne sais pas pourquoi mes scripts ne fonctionneront pas correctement sur les instances d'Ubuntu sans inclure sudo. –

Questions connexes