JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中管理服务和故障     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  管理服务(概述)

2.  管理服务(任务)

监视 SMF 服务

监视服务(任务列表)

如何列出服务的状态

如何列出服务的定制信息

如何显示依赖某个服务实例的服务

如何显示某个服务所依赖的服务

如何设置 SMF 转换事件的通知

管理 SMF 服务

管理 SMF 服务(任务列表)

对于 SMF 使用 RBAC 权限配置文件

如何创建 SMF 服务

如何禁用服务实例

如何启用服务实例

如何重新启动服务

如何恢复处于维护状态的服务

如何创建 SMF 配置文件

如何手动创建 SMF 配置文件

如何应用 SMF 配置文件

配置 SMF 服务

配置 SMF 服务(任务列表)

如何修改 SMF 服务属性

如何修改一个服务的多个属性

如何修改文件配置的服务

如何更改服务的环境变量

如何更改由 inetd 控制的服务的属性

如何删除服务的定制信息

如何修改由 inetd 控制的服务的命令行参数

如何转换 inetd.conf

使用运行控制脚本

使用运行控制脚本(任务列表)

如何使用运行控制脚本来停止或启动传统服务

如何添加运行控制脚本

如何禁用运行控制脚本

如何将运行控制脚本转换为 SMF 服务

对服务管理工具进行故障排除

SMF 故障排除(任务列表)

如何调试未启动的服务

如何修复已损坏的系统信息库

如何在不启动任何服务的情况下引导

如何以详细模式进行引导

system/filesystem/local:default 服务在系统引导期间失败时,如何强制出现 sulogin 提示符

3.  使用 Fault Manager

索引

使用运行控制脚本

以下过程说明如何使用运行控制脚本来停止或启动传统服务。此外还提供了有关添加或删除运行控制脚本的说明。

使用运行控制脚本(任务列表)

以下任务列表包括几个与使用运行控制脚本相关的过程。每行都包含一个任务、关于执行该项任务的时间说明,以及指向该任务的链接。

任务
说明
参考
停止或启动传统服务。
使用运行控制脚本停止或启动服务。
添加运行控制脚本。
创建运行控制脚本并将其添加到 /etc/init.d 目录中。
禁用运行控制脚本。
通过重命名运行控制脚本文件来禁用该脚本。
将运行控制脚本转换为使用 SMF。
使用 SMF 清单替代运行控制脚本,从而可通过 SMF 服务对服务进行管理。

如何使用运行控制脚本来停止或启动传统服务

  1. 成为管理员,或承担拥有 Service Management (服务管理)权限配置文件的角色。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 停止系统服务。
    # /etc/init.d/filename stop
  3. 重新启动系统服务。
    # /etc/init.d/filename start
  4. 检验服务是否已停止或启动。
    # pgrep -f service

示例 2-19 使用运行控制脚本停止或启动服务

例如,可以通过键入以下命令来停止 PPPoE 服务器守护进程:

# /etc/init.d/pppd stop
# pgrep -f nfs

然后,可以通过键入以下命令来重新启动 PPPoE 服务器守护进程:

# /etc/init.d/pppd start
# pgrep -f ppp
101748
# pgrep -f ppp -d, | xargs ps -fp
     UID    PID   PPID   C    STIME TTY         TIME CMD
  daemon 101748      1   0   Sep 01 ?           0:06 /usr/lib/inet/pppoed

如何添加运行控制脚本

如果要添加用来启动和停止服务的运行控制脚本,请将该脚本复制到 /etc/init.d 目录中。然后,在要从其中启动和停止服务的 rcn .d 目录中创建链接。

有关命名运行控制脚本的更多信息,请参见每个 /etc/rc n.d 目录中的 README 文件。以下过程介绍如何添加运行控制脚本。

  1. 成为管理员,或承担拥有 Service Management (服务管理)权限配置文件的角色。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. /etc/init.d 目录中添加脚本。
    # cp filename/etc/init.d
    # chmod 0744 /etc/init.d/filename
    # chown root:sys /etc/init.d/filename
  3. 创建指向相应 rcn.d 目录的链接。
    # cd /etc/init.d
    # ln filename /etc/rc2.d/Snnfilename
    # ln filename /etc/rcn.d/Knnfilename
  4. 检验脚本在指定的目录中是否具有链接。
    # ls /etc/init.d/*filename /etc/rc2.d/*filename /etc/rcn.d/*filename

示例 2-20 添加运行控制脚本

以下示例显示如何为 xyz 服务添加运行控制脚本。

# cp xyz /etc/init.d
# chmod 0744 /etc/init.d/xyz
# chown root:sys /etc/init.d/xyz
# cd /etc/init.d
# ln xyz /etc/rc2.d/S99xyz
# ln xyz /etc/rc0.d/K99xyz
# ls /etc/init.d/*xyz /etc/rc2.d/*xyz /etc/rc0.d/*xyz

如何禁用运行控制脚本

通过在文件名开头加一个下划线 (_) 来重命名运行控制脚本可以禁用该运行控制脚本。系统不执行以下划线或点开头的文件。如果通过为文件添加后缀的方法来复制该文件,那么,带后缀和不带后缀的文件都将运行。

  1. 成为管理员,或承担拥有 Service Management (服务管理)权限配置文件的角色。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 通过在新文件的开头添加下划线 (_) 来重命名脚本。
    # cd /etc/rcn.d
    # mv filename_filename
  3. 检验脚本是否已重命名。
    # ls _*
    _filename

示例 2-21 禁用运行控制脚本

以下示例显示如何重命名 S99datainit 脚本。

# cd /etc/rc2.d
# mv S99datainit _S99datainit
# ls _*
_S99datainit

如何将运行控制脚本转换为 SMF 服务

以下过程说明如何充分利用 SMF 的优点来支持现有的运行控制脚本。有关更多信息,请参见 svcbundle (1M) 手册页。

开始之前

首先,确定脚本需要使用何种服务模型。如果脚本执行一些任务然后退出,而不启动任何长时间运行的进程,则它很可能是瞬态服务。如果脚本启动长时间运行的守护进程然后退出,则它是合同服务。有关服务模型的更多信息,请参见 svc.startd(1M) 手册页的“持续时间”部分。

下一步确定适用于服务的运行级别。这可以通过查看脚本链接到哪个目录来确定,例如 /etc/rc3.d 目录。

  1. 成为管理员,或承担拥有 Service Management (服务管理)权限配置文件的角色。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 创建临时清单。

    在此示例中,服务名称为 ex_svc。这是合同服务,运行级别为 3。

    # svcbundle -o /tmp/ex_svc.xml -s service-name=ex_svc
          -s start-method=/lib/svc/method/ex_svc -s model=transient
  3. 对清单进行任何其他更改。

    验证在 /tmp/ex_svc.xml 中的清单内容是您所需的。

  4. 将清单复制到正确目录。
    # cp /tmp/ex_svc.xml /lib/svc/manifest/site/ex_svc.xml
  5. 停止现有服务。
    # /etc/init.d/ex_svc stop
  6. 禁用运行控制脚本。

    从相应的 rc n.d 目录中删除指向运行控制脚本的链接。

  7. 导入清单并启动服务。
    # svcadm restart svc:/system/manifest-import