Solaris SMF 终止服务,因为孩子死亡

aaa*_*210 6 solaris smf

我正在使用 SMF 来管理 Solaris10 下的服务。

该服务本身就是一个进程管理器,并分叉出许多子进程,其中一些子进程偶尔会死亡(或因各种原因被杀死)。服务流程本身非常健壮,但永远不会消亡。

我遇到的问题是,当我使用 KILL 信号手动杀死这些子进程之一时,SMF 将重新启动主服务:

[ Aug 27 08:07:06 Stopping because process received fatal signal from outside the service. ]

有没有一种方法可以配置 SMF 或服务清单,以便在服务子进程之一被终止时 SMF不会终止服务?

TIA

小智 5

您需要在清单中设置以下内容:

<property_group name='startd' type='framework'>
    <!-- sub-process core dumps shouldn't restart session -->
    <propval name='ignore_error' type='astring' value='core,signal' />
</property_group>
Run Code Online (Sandbox Code Playgroud)

或者您可以通过以下方式即时完成:

svccfg -s svc:/your/service:default
svccfg> setprop startd/ignore_error = astring:"core,signal"
svccfg> ^D
Run Code Online (Sandbox Code Playgroud)