跳过导航链接 | |
退出打印视图 | |
安装 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