Exécuter le script python à partir de rc.local ne s’exécute pas

Je veux lancer un script python au démarrage d’ubuntu 14.04LTS.

Mon fichier rc.local est le suivant:

sudo /home/hduser/morey/zookeeper-3.3.6/bin/zkServer.sh démarrer

echo “test”> / home / hduser / test3

sudo /home/hduser/morey/kafka/bin/kafka-server-start.sh /home/hduser/morey/kafka/config/server.properties &

echo “test”> / home / hduser / test1

/ usr / bin / python /home/hduser/morey/kafka/automate.py &

echo “test”> / home / hduser / test2

sortie 0

Tout sauf mon script python fonctionne bien, même la déclaration echo après l’exécution du script python, mais le script python ne semble pas fonctionner. Mon script python est comme suit

import sys from subprocess import Popen, PIPE, STDOUT cmd = ["sudo", "./sbt", "project java-examples", "run"] proc = Popen(cmd, shell=False, stdout=PIPE, stdin=PIPE, stderr=STDOUT) proc.communicate(input='1\n') proc.stdin.close() 

qui fonctionne parfaitement si exécuté individuellement.

Je suis passé par les questions suivantes, lien

J’ai fait beaucoup de recherches mais je n’ai pas trouvé de solution

Edit: les instructions echo sont uniquement à des fins de test, et la deuxième commande réelle (sans tenir compte des instructions echo) démarre un serveur qui continue de fonctionner, et même le script python démarre un écouteur qui s’exécute sur une boucle infinie, si cela est Aidez-moi

Le script Python tente de lancer ./sbt . Êtes-vous sûr de savoir si le répertoire en cours lorsque rc.local s’exécute? La règle utilise toujours des chemins absolus dans les scripts système

Ne lancez pas le script Python en arrière-plan, exécutez-le au premier plan. Ne quittez pas son script parent. Mieux vaut appeler un autre script de “rc.local” qui fait tout le travail de “echo” et le lancement du script.

Exécutez ce script à partir de “rc.local”; pas en arrière-plan (no &).

Vous n’avez pas besoin de “sudo” car “rc.local” est exécuté en tant que root.

Si vous voulez exécuter le script python au démarrage du système, il existe une autre solution que j’ai utilisée.

1: Créer un fichier sh comme sample.sh et copier le contenu suivant

 #!/bin/bash clear python yourscript.py 

2: Maintenant, ajoutez un job cron à reboot.Si vous utilisez Linux, vous pouvez utiliser comme suit

 a:Run crontab -e(Install sudo apt-get install cron) b:@reboot /full path to sh file > /home/path/error.log 2>&1 

Et redémarrez votre appareil