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.
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:
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:
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.
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