web-dev-qa-db-fra.com

Comment créer un service qui démarre au démarrage dans CentOS?

Lorsque je démarre ma boîte CentOS, le service httpd démarre automatiquement. Comment créer un service personnalisé qui fait la même chose? J'ai un programme que j'utilise pour l'exploration, et je ne veux pas avoir besoin d'exécuter ./miner à chaque démarrage de la machine.

7
Rei

Puisque vous utilisez CentOS 7.x, créez une unité. vim /usr/lib/systemd/system/miner.service as root et mettez le contenu suivant:

[Unit]
Description=miner

[Service]
ExecStart=/path/to/miner

[Install]
WantedBy=multi-user.target

Vous pouvez ajouter ExecStop= et ExecReload= options si des arguments spécifiques sont utilisés pour fermer ou recharger les services.

Après cela, il vous suffit de systemctl enable miner.service pour le faire démarrer à chaque démarrage.

Contenu connexe:

12
user34720

Selon le fournisseur du programme mineur, le service associé peut déjà être déclaré.

Sur centOS, vous pouvez vérifier:

# chkconfig --list 

et si vous voyez votre programme, vous pouvez dire au système de l'exécuter automatiquement au démarrage

# chkconfig postgresql on

Si vous ne trouvez aucun résultat, vous pouvez créer votre propre script factice à l'aide d'un modèle, par exemple:

Comment créer un service pour un script Shell afin de pouvoir le démarrer et l'arrêter comme un démon?

puis mettez-le dans /etc/init.d/ et chmod + x it

Vous devriez pouvoir gérer votre application de mineur en tant que service avec tous les avantages qui vont avec.

1
M4rty

Si vous avez juste besoin d'exécuter la commande au démarrage, essayer de créer un service réel n'est pas vraiment nécessaire. La chose la plus simple à faire est de supprimer . /path/to/miner dans /etc/rc.d/rc.local. Ce fichier est un script qui s'exécute à chaque démarrage (et assurez-vous que rc.local est exécutable), donc votre commande s'exécutera au démarrage du serveur.

Si vous souhaitez qu'il soit réellement géré en tant que service, la meilleure façon de le faire dépendra de l'utilisation de CentOS 7 ou 5/6.

edit: oublié de mentionner, cela sera exécuté en tant que root, donc si vous en avez besoin, exécutez-le en tant qu'utilisateur non root, utilisez plutôt su - username -c /path/to/miner

1
Kefka