L'exécution de Cronjob @reboot renvoie que le fichier sur le partage nfs n'existe pas.
Exemple
@reboot python /abs/path/to/script.py
le courrier de crontab au démarrage indique "plus ou moins"
/usr/bin/python can't open file "/abs/path/to/script.py": [Error No. 2] No such file or folder.
Le script peut être exécuté à partir de la ligne de commande sans problème. La
théorie est que le cronjob est en cours d'exécution avant l'exécution du montage.
Questions.
- Cette théorie est-elle correcte?
- Existe-t-il un moyen de forcer le travail à se lamenter jusqu'à ce que le lecteur soit monté? .... Autre que de simplement mettre un sommeil 60 dans la commande. ;) J'ai déjà essayé ça, mais c'est hasardeux et j'ai besoin que le script s'exécute 100% du temps rapidement.
Réponses:
Vous pouvez utiliser la commande mountpoint pour vous assurer que le montage a eu lieu avant d'exécuter votre commande, par exemple (en supposant que / abs est le point de montage)
la source
mountpoint
- c'est très utile!Je ne sais pas quel est le problème puisque cron démarre après la mise en réseau. (Au moins dans Red Hat et ses dérivés.) Vos montures sont-elles
/etc/fstab
avec_netdev
option ou ailleurs?La manière standard d'exécuter quelque chose au démarrage est de l'inclure dans
/etc/rc.local
. Celui-ci sera exécuté une fois le réseau initialisé et tous les autres services démarrés. (Y compris le montage de systèmes de fichiers distants.)(Ou existe-t-il une raison pour exécuter le script uniquement après un redémarrage littéral?)
la source
Voici quelques idées pour vous:
vérifiez si NFS est monté. Sinon, montez-le, puis exécutez votre script:
[ ! -f /abs/path/to/script.py ] && mount -t nfs device dir && python /abs/path/to/script.py
exécutez votre script dans la
start()
fonction du script d'initialisation NFS:la source
Pour être absolument sûr que le script python est capable de s'exécuter. Vous devrez l'envelopper dans un script stocké sur le stockage local pour vérifier que le point de montage est arrivé.
Quelque chose comme (pseudo-code d'avertissement):
la source