2008-11-05 12 views
1

J'ai hérité du monstre d'un script BASH de quelqu'un d'autre. Le script a été écrit de telle sorte qu'il utilise une quantité de mémoire ridicule (environ 1 Go). Je peux l'exécuter à partir d'un shell sans problème, mais si je l'exécute à partir de cron, je plante avec une faute de sig.Exécution manuelle de la tâche, en cours d'exécution à partir de cron Je reçois un sigfault

En dehors de creuser dans le béhémoth mal commenté, est-il un moyen de l'exécuter à partir de cron sans courir dans la faute de sig?

Cheers,

Steve

Répondre

1

Lorsque vous exécutez quelque chose en utilisant Cron vous rencontrez des problèmes avec les variables d'environnement étant différent ou tout simplement pas mis par rapport à vos propres variables lorsque vous exécutez manuellement. Souvent, des choses comme PATH ne sont pas correctement définies quand cron exécute quelque chose, il est donc important de fournir des chemins complets aux exécutables du script, même pour des choses comme perl ou des commandes communes que vous devriez trouver dans le PATH par défaut. Sans plus d'informations, il est difficile de spéculer sur ce qu'est précisément le problème.

+0

Regardez également dans LD_LIBRARY_PATH dans l'environnement cron. – dmckee

1

Attend-il à être connecté à un tty ou avoir un stdin ouvert? Essayez de rediriger un fichier de quelque chose au hasard comme inout quand il fonctionne à partir de cron?

Que segfaults? Bash, ou quelque chose qu'il appelle?

Des indications du fichier core sur le problème?

0

essayer de faire stdout sûr et stderr ont un endroit où aller

/path/to/bigscript.sh &> /dev/null 

[Modifier] vous pouvez utiliser un fichier autre que/dev/null, surtout si votre cours d'exécution en mode débogage;)

Être si énorme, je ne suis pas si déboguer aiderait mais vous pouvez essayer. En bash, c'est l'option '-x', que vous pouvez simplement mettre dans le shebang.

Et comme il a été dit dans d'autres réponses, il y a de bonnes chances que ce soit une variable d'environnement.

Questions connexes