web-dev-qa-db-fra.com

Comment exécuter un script automatiquement sur le démarrage du système dans Centos

J'ai installé avec succès TeamCity IB Centos 6.2 Minimal. Je suis coincé à essayer d'exécuter un script automatiquement sur le démarrage du système:

/opt/TeamCity/bin/teamcity-server.sh start

J'ai googlé et j'ai essayé diverses méthodes qui semblent tout échouer. La plupart des méthodes indiquent l'ajout du script de démarrage à l'un des fichiers RC.Local:

/etc/rc.d/rc.local
/etc/rc.local

Et le contenu de RC.Local contient la ligne:

/opt/TeamCity/bin/teamcity-server.sh start

Aucun d'entre eux ne démarrera le serveur TeamCity

Il n'y a pas de problèmes si j'exécute le script manuellement.

Semble simple mais comment puis-je obtenir un script shell à la course automatique?

8
atp03

Si le script de démarrage de TeamCity est un Script Init conformiant de LSB (c'est-à-dire s'il fournit Démarrer, arrêtez = et autres arguments ), vous pouvez simplement copier le script sur /etc/init.d Dossier et exécution (en tant que root):

# chkconfig --add <script_name>
# chkconfig <script_name> on

Un lien symbolique pour le fichier devrait être ok aussi. Alors essayez (en tant que root):

# ln -s /opt/TeamCity/bin/teamcity-server.sh /etc/init.d/teamcity-server
# chkconfig --add teamcity-server
# chkconfig teamcity-server on

S'il ne démarre pas lors de l'initialisation, mais commencez manuellement sans problèmes, vous devriez vérifier:

  1. autorisations (peut-être que le programme ne peut pas être exécuté en tant que root. Essayez de vous connecter en tant que root et de l'exécuter) et;
  2. votre chemin (peut-être que le script a besoin de quelque chose mais cela ne sait pas où il est).

Pour imprimer le contenu de votre chemin, il suffit de courir:

echo $PATH

Pour vérifier si la raison du script ne démarre pas est le chemin, essayez:

$ cd /
$ PATH= /opt/TeamCity/bin/teamcity-server.sh

Cette commande clarifiera temporairement votre chemin et exécutera la commande. Si la commande a besoin d'informations spécifiques sur le chemin, elle échouera (soyez prudent de fonctionner exactement comme indiqué ci-dessus, il y a un espace entre Chemin = et le reste de la commande).

15
Diego Queiroz

dans la commande de Fedora 17

# chkconfig --add teamcity-server

dites: Service TeamCity-Server ne prend pas en charge Chkconfig, vous devez ajouter une en-tête comme suit:

#! /bin/bash
# chkconfig: - 10 90

seulement après cela exécutoire la première commande.

6
burtsevyg

Lorsque le script est exécuté manuellement, cela fonctionne correctement. Mais, quand courez automatiquement, cela ne fonctionne pas.

J'ai trouvé le coupable: TeamCity fonctionne sous l'utilisateur teamcity. Il doit être présent dans le /etc/sudoers Fichier et vous devriez ajouter, en utilisant visudo une ligne comme celle-ci:

Defaults:teamcity !requiretty
2
kupolua