Le démarrage des services est très conditionnel à la distribution Linux. Veuillez nous dire ce que vous essayez d'accomplir (et sur quelle distribution et peut-être l'environnement de bureau), car en ce moment je pense que vous ne pensez probablement pas au problème correctement.
xenoterracide
Réponses:
23
Pour exécuter un service sans ou avant de vous connecter au système (c'est-à-dire "au démarrage"), vous devrez créer un script de démarrage et l'ajouter à la séquence de démarrage.
Un script de service comprend trois parties: démarrer, arrêter et redémarrer.
La structure de base d'un script de service est la suivante:
Une fois que vous avez modifié le script à votre guise, placez-le simplement dans /etc/init.d/
Et ajoutez-le au processus de démarrage du service système (sur Fedora, je ne suis pas un utilisateur Ubuntu,> D):
chkconfig -add <ServiceName>
Le service sera ajouté au processus de démarrage du système et vous n'aurez pas à le redémarrer manuellement.
Notez que pendant le démarrage, l'arrêt et le redémarrage sont généralement suffisants pour de simples scripts d'initialisation. Vous voudrez probablement aussi inclure une action «status», ce qui est facile dans Debian et d'autres distributions qui incluent status_of_proc () dans son paquet init-functions. Des packages bien gérés incluront toutes les fonctions requises par le LSB ( refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/… ). Le script init distribué avec tomcat dans Ubuntu contient toutes ces actions, il est probablement parié de simplement l'utiliser.
Steven D
19
Selon le système init, vous créez le script init différemment. Fedora vous donne le choix entre systemstart et systemd, et bien sûr la compatibilité SysV.
Parvenu
créer un fichier de définition de service en tant que /etc/init/custom-tomcat.conf
mettre dedans:
start on stopped rc RUNLEVEL=3
respawn
exec /path/to/your/tomcat --and --parameters
Et votre Tomcat devrait démarrer au démarrage du système.
Systemd
créer une définition de service dans /etc/systemd/system/custom-tomcat.service
Tomcat est un service assez courant, je recommanderais déjà de regarder le script init fourni par la distribution. Les chances sont que cela fonctionne avec votre binaire personnalisé, avec peu ou pas de réglages.
Si vous avez un crondémon, l'un des crochets de temps cron prédéfinis est @reboot, qui s'exécute naturellement au démarrage du système. Exécutez crontab -epour modifier votre crontabfichier et ajoutez une ligne:
Est-ce que cela s'applique à toutes les startups, ou seulement aux redémarrages?
WhyNotHugo
Cela s'applique UNIQUEMENT à fcron - pas à vixie-cron ou à tout autre cron AFAIK.
Maciej Piechotka
@Maciej Cela fonctionne certainement pour vixie-cron; c'est ce que j'utilise
Michael Mrozek
@Hugo Toutes les startups
Michael Mrozek
6
Pour exécuter simplement un script après le démarrage de l'ordinateur mais avant qu'un utilisateur ne se connecte, vous pouvez simplement modifier le script /etc/rc.local qui est destiné à résoudre exactement cette tâche.
Réponses:
Pour exécuter un service sans ou avant de vous connecter au système (c'est-à-dire "au démarrage"), vous devrez créer un script de démarrage et l'ajouter à la séquence de démarrage.
Un script de service comprend trois parties: démarrer, arrêter et redémarrer.
La structure de base d'un script de service est la suivante:
Une fois que vous avez modifié le script à votre guise, placez-le simplement dans /etc/init.d/
Et ajoutez-le au processus de démarrage du service système (sur Fedora, je ne suis pas un utilisateur Ubuntu,> D):
Le service sera ajouté au processus de démarrage du système et vous n'aurez pas à le redémarrer manuellement.
À votre santé!
la source
Selon le système init, vous créez le script init différemment. Fedora vous donne le choix entre systemstart et systemd, et bien sûr la compatibilité SysV.
Parvenu
/etc/init/custom-tomcat.conf
mettre dedans:
Et votre Tomcat devrait démarrer au démarrage du système.
Systemd
/etc/systemd/system/custom-tomcat.service
mettre dedans:
et activez votre service en utilisant
systemctl enable custom-tomcat.service
. Il sera lancé à chaque démarrage normal.Bien sûr, il y a quelques options de configuration supplémentaires pour les deux systèmes init, vous pouvez les vérifier dans leur documentation.
la source
Tomcat est un service assez courant, je recommanderais déjà de regarder le script init fourni par la distribution. Les chances sont que cela fonctionne avec votre binaire personnalisé, avec peu ou pas de réglages.
la source
Si vous avez un
cron
démon, l'un des crochets de temps cron prédéfinis est@reboot
, qui s'exécute naturellement au démarrage du système. Exécutezcrontab -e
pour modifier votrecrontab
fichier et ajoutez une ligne:la source
Pour exécuter simplement un script après le démarrage de l'ordinateur mais avant qu'un utilisateur ne se connecte, vous pouvez simplement modifier le script /etc/rc.local qui est destiné à résoudre exactement cette tâche.
la source
Vous pouvez créer un script plus sophistiqué, qui vous permet d'exécuter sous les autorisations d'un utilisateur spécifique, comme suit:
Le script va dans /etc/init.d/myservice, et vous démarrez le service en exécutant:
Lisez la page de manuel sur start-stop-daemon pour comprendre comment cela fonctionne.
la source
Dans Ubuntu ou Debian comme vous pouvez utiliser, pour ajouter
ôter
Au revoir! \ o
est agréable à implémenter l'état des fonctions et force-reload pour être LSB-compilant
la source
service --status-all
liste?