SA 239 翻译 第九章 执行启动和关闭程序( 五 )


建立新的运行控制脚本
为了定制一个系统,你能建立新的脚本启动和停止附加进程或服务
例如,为了消除手动启动一个数据库服务起的需求,你能创建一个当合适的网络服务已经启动之后,自动启动数据库的脚本 。
为了增加运行控制脚本启动和停止一个服务,在/etc/init.d目录下建立脚本,在合适的/etc/rc#.d目录下创建连接,保证服务能够在恰当的运行级别下被启动和停止 。

注意——图中halt和reboot命令并不像init和shutdown命令那样处理inittab文件 。Init和shutdown命令运行状态间变换的首选的方法 。
执行系统关闭程序
为了执行一个管理任务或维护活动,如果你预见到电源损耗或如果你需要把系统移动到一个新的地方,你能关闭Solaris OE 。
Solaris OE需要一个干净的有序的关闭,停止进程,把内存中数据写到磁盘,卸载文件系统 。
当然,系统关闭时你所需要的工作的类型决定了系统怎样被关闭和你使用哪一个命令 。
下面描述了系统关闭的不同类型 。
关闭系统到单用户模式
关闭系统,停止Solaris OE,显示OK提示符
关闭系统并且关闭电源
关闭系统并且自动重启到多用户模式 。
为做这些类型的系统关闭,root用户可用的命令包括:
/sbin/init(使用运行级别S,0,1,2,3,5,6)
/usr/sbin/shutdown(使用运行级别S,0,1,5,6)
/usr/sibin/halt
/usr/sbin/poweroff
/usr/sbin/reboot

/usr/sbin/init命令
你可以使用init命令用一个干净有序的习惯shut down,power off或reboot一个系统 。它执行rc0 kill脚本 。然而,这个命令并不警告登陆的用户系统正在被关闭,没有宽限期 。
/usr/sbin/shutdown命令
shutdown命令是一个调用init守护进程shutdown,power off或reboot系统的脚本 。为了关闭进程和应用,它执行rc0 kill脚本 。但是,不象init命令那样,shutdown命令做下面的事情:
通知所有登陆用户,系统将要被关闭
默认延迟关闭60秒
让你能够包括一个可选描述信息,告之你的用户发生了什
命令格式:
shutdown –y –g grace-period –i init-state optional message
-y选项预答了最后关闭确认问题,以至于命令以一个非交互方式运行 。
-g grace-period允许你改变默认60秒延时为你自己指定的时间grace-period
-i init-state指定init进程将要获得的运行级别,默认是S
注意——如果shutdown命令显示错误消息:“shutdown:"i" – unknown flag”它指出shell已经定位并执行了/usr/ucb/shutdown命令 。使用它的全路径(例如,/usr/sbin/shutdown)重新执行这个命令,或者设置PATH变量确保/usr/sbin位于/usr/ucb前面 。
/usr/sbin/halt命令
halt命令完成一个立即系统关闭 。它并不执行rco kill脚本,它不通知登陆用户,也没有宽限期 。
/usr/sbin/poweroff命令
poweroff命令完成一个立即系统关闭 。它并不执行rco kill脚本,它不通知登陆用户,也没有宽限期 。
/usr/sbin/reboot命令
reboot命令完成一个立即关闭并且重新初始化,并启动系统到默认的运行级别3 。Reboot命令不同于init 6命令,因为它并不执行rc0 kill脚本 。

推荐阅读