Je ne sais pas par où commencer. J'ai lu sur les démons et je n'ai pas compris le concept.
Plus de détails :
- J'ai écrit un robot qui ne s'arrête jamais et des robots sur RSS sur Internet.
- Le robot a été écrit en java - c'est donc un pot en ce moment.
- Je suis administrateur sur une machine dotée d'Ubuntu 11.04.
- Il y a quelques chances que la machine plante, donc j'aimerais que le robot s'exécute à chaque démarrage de la machine.
- De plus, j'aimerais qu'il continue de fonctionner même lorsque je me suis déconnecté. Je ne suis pas sûr que ce soit possible, mais la plupart du temps je suis déconnecté et je veux toujours l'explorer.
Des idées? Quelqu'un peut me diriger dans la bonne direction?
Je cherche juste la solution la plus simple.
Oui! C'est possible. :) Upstart est le chemin à parcourir pour s'assurer que le service continue de fonctionner. Il dispose de cinq packages, tous installés par défaut:
L'apprentissage est très agréable et en vaut la peine. Upstart a un site Web: http://upstart.ubuntu.com/
la source
3 suggestions rapides ...
Créez un script S tart dans
/etc/rc3.d
(mode console multi-utilisateur) avec les scripts K ill correspondants dans/etc/rc.0
et/etc/rc6.d
pour tuer votre programme Java de manière contrôlée lorsque le système s'éteint (niveau d'exécution 0) ou redémarre (niveau d'exécution 6) Voir une introduction aux niveaux d'exécution .Vous pourrez peut-être démarrer votre application Java au niveau d'exécution 2 (rc2.d) mais, en tant que robot d'exploration, elle aura besoin de TCP / IP. Assurez-vous donc que votre service de mise en réseau est disponible / démarré au préalable dans votre niveau d'exécution 2. Le réseautage est définitivement au niveau d'exécution 3.
/etc/init.d
contient tous les scripts de démarrage / arrêt réels./etc/rcN.d
les répertoires contiennent juste des liens vers eux, préfixés par S ou K pour les démarrer ou les tuer respectivement, par niveau d'exécution N.Un processus exécuté par
crond
doit persister entre les déconnexions. Peut-être l'ajouter à votre crontab.Un processus exécuté avec
nohup
doit également persister. Voir nohup: exécutez une commande même après votre déconnexion .Par défaut,
myapp.jar
la sortie standard de va dans un fichier nommé./nohup.out
, ou$HOME/nohup.out
si le premier n'est pas accessible en écriture.la source
Soyez également conscient lorsque vous faites des applications avec:
Pour avoir les autorisations 0755 et pour utiliser ou obtenir avant votre .sh le chemin. Supposons que votre script se trouve sur /root/test.sh, vous devez d'abord changer de CD
/root/
avant d'accédertest.sh
.La meilleure façon est donc de faire un SH sur init.d et de changer le chemin vers votre
sh
et de l'exécuter dans la fonction de démarrage.la source
Scripts de démarrage simples avec vérification de la version Java pour Linux auth-agent et Windows auth-agent.bat
la source
La façon la plus simple est d'utiliser
supervisord
. Veuillez voir tous les détails sur http://supervisord.org/Vous pouvez également voir plus de détails ici:
Exécution d'un fichier jar exécutable au démarrage du système
https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps
la source