我为一个应用程序创建了一个服务,我希望这个应用程序在启动时启动。在服务清单中,我意识到有一个属性 (enabled="true"),但我一直在避免使用它,因为它有一个特别烦人的方面:
导入是脚本的一部分。将服务设为“已启用”意味着它将在导入时重新启动。问题是我不确定如何等到进程启用后再继续。所以,我在脚本中做的是导入,启用设置为“false”,然后运行“svcadm enable -s <service>
”。
所以我想知道是否有人对以下任何一个问题有任何答案:
谢谢。
小智 0
我将尝试回答您有关 Solaris SMF 的问题...
要在启动时启动服务,您必须简单地启用该服务
# svcadm enable FRMI
Run Code Online (Sandbox Code Playgroud)
例如,要启用服务“ipfilter”,您需要
# svcadm enable ipfilter
Run Code Online (Sandbox Code Playgroud)
这将在当前里程碑上启用,因此无需对/etc/rcX.d
目录进行任何更改
我不明白为什么你需要导入过程来等待其他一些 frmi,但是,我通常导入“清单”,然后将其放在网上 svcadm
,例如
# svccfg validate MANIFEST
# svcadm enable FRMI
Run Code Online (Sandbox Code Playgroud)要等待其他 frmi,您可以使用清单中的“依赖项”选项,如下所示
<dependency
name='filesystem-local'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/system/filesystem/local:default' />
</dependency>
Run Code Online (Sandbox Code Playgroud)我在我的博客(西班牙语)中提供了许多有关如何安装和使用 Solaris SMF 的示例,但是,例如,您可以在此处看到一个示例, How to Install PostgreSQL 9.0.3 on OpenIndiana或How to Install Apache Tomcat using RBAC 以及OpenIndiana 上的 SMF