Linux ubuntu 14.04 avoir un script dans ~/app/serve.py
Besoin de l'exécuter dans ce dossier. En shell je peux faire
> cd ~/app && python serve.py
et il exécute un serveur
Besoin de l'exécuter sur les serveurs démarrer en arrière-plan. Essayé d'ajouter cette commande cd ~/app && python serve.py ~
Inc/rc.local (et etc/init.d/rc.local) mais cela ne démarre pas.
Qu'est-ce que je fais mal?
Au lieu d'ajouter cd ~/app && python serve.py
Dans /etc/rc.local, essayez de mettre dans l'ensemble du chemin. Vous vous attendez à ce que le processus init sache que votre annuaire de maison est en quelque sorte, mais init commence en tant que root. Parce que Init commence en tant que root, il cherche dans /
Pour le répertoire d'applications, pas votre annuaire de domicile. Débarrassez-vous de l'~ en utilisant le chemin de votre répertoire personnel.
Essayez d'ajouter /home/whitecolor/app/serve.py
à /etc/rc.local
. (pwd
_ pour trouver votre répertoire de chemin.) Démarrez le débarras python
devant votre script serve.py en ajoutant #!/usr/bin/python
En haut de votre script. (type A which python
Pour trouver le chemin au cas où il n'est pas installé dans la place normale)
Edit: Vous avez dit "courir à l'arrière-plan" et cela m'a raté. Pour exécuter une commande en arrière-plan, ajoutez un &
après la commande. Donc, à l'arrière-plan que commander ci-dessus: /home/whitecolor/app/serve.py &
Init n'a généralement pas besoin du symbole d'arrière-plan pour lancer un travail et l'exécuter à l'arrière-plan.
L'excellente suggestion de DRTR n'aurait pas besoin de la même chose &
Traitement après la commande dans le démarrage de cron, car ceux-ci sont exécutés dans l'arrière-plan par défaut.
Je n'ai jamais eu la nécessité d'essayer cela, mais apparemment des scripts peuvent être exécutés au démarrage du système via Cron en ajoutant une ligne similaire à celle du début avec @reboot ci-dessous.
#m h dom mon dow command
1 * * * * someHourlyCommand
@reboot python /home/<username>/app/serve.py
Remarque, j'ai légèrement modifié la commande pour éliminer CD'ing dans le répertoire. Votre situation peut être différente, alors faites ce qui fonctionne pour vous.