| 跳过导航链接 | |
| 退出打印视图 | |
|
安装 Oracle Solaris 11 系统 Oracle Solaris 11 Information Library (简体中文) |
在创建 SMF 清单文件中显示的 SMF 服务清单的顶部附近,通过以下行启用服务:
<create_default_instance enabled='true' />
在首次引导脚本的末尾,禁用服务并卸载软件包,以使首次引导脚本仅运行一次。
#!/bin/sh svcadm disable svc:/site/first-boot-script-svc:default pkg uninstall pkg:/first-boot-script exit $SMF_EXIT_OK
在本示例中,first-boot-script-svc 是创建 SMF 清单文件中创建的 SMF 服务,first-boot-script 是为脚本和服务创建 IPS 软件包中创建的 IPS 软件包。
提示 -
仅使用一个首次引导脚本,以避免不同脚本中包含不同命令导致相互冲突。
如果必须在首次引导脚本中进行重新引导,请将重新引导设为脚本中的最后一个操作。
示例 13-1 首次引导脚本样例
本示例显示名为 /opt/site/first-boot-script.sh 的首次引导脚本样例。此脚本首先保存刚由 AI 安装创建的引导环境 (boot environment, BE) 的副本。在首次引导脚本修改 BE 之前保存 BE 的副本,这使您可以通过引导到保存的 BE 中来轻松从脚本引入的任何问题中恢复。
#!/bin/sh
# Load SMF shell support definitions
. /lib/svc/share/smf_include.sh
echo "Save original boot environment first."
# Obtain the active BE name from beadm: The active BE on reboot has an R in
# the third column of 'beadm list' output. Its name is in column one.
bename=`beadm list -Hd|nawk -F ';' '$3 ~ /R/ {print $1}'`
beadm create ${bename}.orig
# Add support for faster serial console
echo "Setting up support for faster serial console"
! grep console115200 >/dev/null /etc/ttydefs && \
echo "console115200:115200 hupcl opost onlcr:115200::console115200" \
>>/etc/ttydefs
echo "Configure ssh server for root login and X11 forwarding"
ed - << EOF
r /etc/ssh/sshd_config
/PermitRootLogin/
c
PermitRootLogin yes
.
/X11Forwarding/
c
X11Forwarding yes
.
w
q
EOF
svcadm refresh ssh
# Set up coreadm
echo "Setting core file configuration"
coreadm -G default -g /var/cores/%f.%u.%p.%t.core
coreadm -e global
coreadm -e process
coreadm -e proc-setid
coreadm -e log
# Disable service and uninstall package
svcadm disable svc:/site/first-boot-script-svc:default
pkg uninstall pkg:/first-boot-script
echo "Site first-boot script done. Rebooting in 5 seconds." > /dev/console
sleep 5 && reboot -p || reboot &
exit $SMF_EXIT_OK