Bjr,
Envoyé par
jlliagre
Plutôt que de mettre un délai, ce qui est du bricolage...
Tout à fait d'accord, mais c'est plutôt des "essais/erreurs" pour déterminer l'origine du problème.
Envoyé par
jlliagre
En y regardant de plus près, tes liens dans les rc*.d sont incorrects
Exact; je ne suis pas habitué de ces init.d; ma distribution habituelle (Slackware) ne les gère pas comme celà. J'ai alors fait confiance (à tort) pour les liens symboliques, à la commande :
root@ubuntu:/home/hubert# update-rc.d horloge defaults
Alors qu'il faut utiliser la commande qui précise les paramètres :
root@ubuntu:/home/hubert# update-rc.d horloge start 91 2 3 4 5 . stop 9 0 1 6 .
Dans le bloc info du script, j'ai mis le même que pour Tomcat :
1 2 3 4 5 6 7 8 9 10 11 12
| ### BEGIN INIT INFO
# Provides: horloge
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Should-Start: $named
# Should-Stop: $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Example initscript
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO |
Après création des liens j'ai :
- mon script horloge : S91/K09
- pour Tomcat : S92/K08
Dans la partie java, j'ai supprimé la résolution de nom et fait l'affectation d'IP en dur ; à l''exécution j'ai maintenant l'erreur :
1 2 3 4 5 6
| java.io.IOException: Network is unreachable
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:676)
at org.apache.commons.net.ntp.NTPUDPClient.getTime(NTPUDPClient.java:90)
at org.apache.commons.net.ntp.NTPUDPClient.getTime(NTPUDPClient.java:113)
at horloge.Horloge.main(Horloge.java:66) |
Donc il y a bien un problème d'accès réseau par l'application.
J'ai réussi à faire fonctionner mon code java de mise à l'heure du système (mais ce n'est qu'un pis-aller) en l'intégrant à la méthode init() d'une servlet, et avec dans web.xml:
<load-on-startup>1</load-on-startup>
Partager