Je fais un tunnel entre notre serveur web et notre serveur MySQL, tous deux sur des machines Solaris. J'ai créé un manifeste SMF pour le tunnel ssh afin de me reconnecter lorsque le serveur web redémarre. Cela fonctionne très bien.
Le problème est que je ne suis pas sûr de ce qu'il faut faire lorsque la boîte MySQL redémarre. Cette fermeture externe du tunnel est transmise à SMF, qui essaie de redémarrer le tunnel en succession rapide 3 fois avant de mettre le service en mode maintenance. Existe-t-il un moyen de spécifier un "retry-every" ou quelque chose de similaire ? Y a-t-il une autre façon d'aborder le problème ?
Voici le SMF que j'utilise.
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type='manifest' name='ssh-tunnel'>
<service
name="network/ssh-tunnel"
type="service"
version="1">
<create_default_instance enabled="false"/>
<single_instance />
<dependency
name='nameservice'
type='service'
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/milestone/name-services' />
</dependency>
<exec_method
type='method'
name='start'
exec='/usr/bin/ssh -fNx -L 3307:127.0.0.1:3306 mysql1'
timeout_seconds='0'>
</exec_method>
<exec_method
type='method'
name='stop'
exec=':kill'
timeout_seconds='0'>
</exec_method>
</service>
</service_bundle>