J'ai un script simple configuré sur ma boîte OpenWrt pour vérifier si l'un des ordinateurs d'un réseau local est en streaming, et si c'est le cas, le script démarre wget | madplay pour jouer le flux. Le script fonctionne très bien si je le lance (en tant que racine), mais échoue si je mets dans crontab.
Entrée de la crontab racine
@reboot /root/check.sh > /root/check.log 2>&1
Script - check.sh
#!/bin/sh
while :; do
checkProcess=$(/usr/bin/pgrep /usr/bin/madplay)
if [ "$checkProcess" = "" ]; then
/usr/bin/ncat -w 0.1 192.168.0.10 50000
output=$?
if [ $output == "0" ]; then
/usr/bin/wget -O - http://192.168.0.10:50000/stream/ | /usr/bin/madplay -
fi
fi
sleep 2
done
Et l'erreur - de check.log
Unable to register IOD #2: Operation not permitted
De plus, si vous avez des conseils pour améliorer le script en général, je le prendrai avec plaisir.
Merci d'avance!
1
J'allais risquer une réponse avec ceci, mais ce n'est pas vraiment une solution, c'est plus un indice que j'ai trouvé sur une liste de mises à jour de Fedora. Informations de mise à jour: - use utilise en tant que moteur nsock par défaut - empêche l'erreur suivante: impossible d'enregistrer l'IOD # 2: opération non autorisée lorsque / dev / null est utilisé en tant que stdin lists.fedoraproject.org/pipermail/test/2013- Janvier 20112978. html
Keith
oui, j'ai trouvé le même problème sur le forum ncat, mais je ne sais pas comment définir le moteur nsock par défaut. Devrais-je changer de source et construire ncat? Ou y a-t-il une configuration qui a échappé à mes yeux? et merci pour l'indice :)
zac
Cela fonctionne-t-il si vous l'exécutez à partir de root ou si un utilisateur crontab dit toutes les 10 minutes? De plus, s’il s’agit de ce problème stdin, vous pouvez peut-être créer un stdin pour ncat avec echo | / usr / bin / ncat -w 0.1 192.168.0.10 50000
Keith