首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于ssh隧道的Solaris SMF

用于ssh隧道的Solaris SMF
EN

Server Fault用户
提问于 2011-05-11 17:19:43
回答 1查看 581关注 0票数 1

我正在从我们的web服务器隧道到我们的MySQL服务器,两者都在Solaris盒上。我为ssh隧道创建了一个SMF清单,以便在web服务器框重新启动时重新连接。这个很好用。

问题是,当MySQL盒重新启动时,我不知道该做什么。隧道的这一外部关闭被传递给SMF,SMF试图连续3次快速重新启动隧道,然后将服务投入维修模式。是否有一种方法来指定“重试-每一个”或类似的东西?我还有别的办法来解决这个问题吗?

这是我用的SMF。

代码语言:javascript
复制
<?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>
EN

回答 1

Server Fault用户

发布于 2011-05-12 07:42:13

您可以在exec变量的“exec_method”部分指定执行timeout_seconds命令之间的等待时间。如果您将其设置为60,它将立即尝试,等待1分钟,然后再试,等待和尝试。您要设置的值取决于MySQL框引导的方式。

另一种方法是将sleep命令指定为exec的一部分,例如,在运行ssh之前等待1分钟:

代码语言:javascript
复制
exec='sleep 60 && /usr/bin/ssh -fNx -L 3307:127.0.0.1:3306 mysql1'

hth,

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/268687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档