学而实习之 不亦乐乎

FreeBSD 关闭系统命令 shutdown 的使用

2023-09-28 08:12:15

在关闭电源之前,保证正确关闭 FreeBSD(或其他unix)系统是非常重要的,直接关闭电源相当于 Windows 系统的非法关机,因为在关闭电源时有些重要的程序正在运行,可能使程序受到损坏,在下次重新启动的时候,无法运行而带来不必要的麻烦,虽然说 FreeBSD 系统有一个比 Windows 系统要强壮的心,但还是不推荐这种破坏性关机行为。

一、FreeBSD 关闭系统命令 shutdown 

shutdown [action] [when] [broadcast message]

  • action:告诉shutdown需要做什么,如关机、重启、关闭电源、逐出系统等相关操作。
  • when:告诉shutdown什么时候开始执行这个命令。
  • broadcast message:告诉shutdown把信息发送到所有已登录的用户。

action 参数说明:

  • 无    把所有人逐出系统,并把系统置入无网络支持的单用户模式。
  • -h    终止系统。
  • -p    如果系统支持自动关闭电源,而且内核被配置为支持电源管理的话,-p参数为终止系统并关闭电源。
  • -r    重新启动unix系统。
  • -k    把所有人逐出系统,并禁用所有登录(root用户除外)。但系统仍然保留多用户模式,并有网络支持。
  • -o    在没有向init发出信号的情形下,关闭系统。这样做并不好,因为它会阻止与关闭脚本相关的程序运行。
  • -n    如果在指定该选项的同时,还指定了-o选项,就会阻止文件系统缓冲在关闭系统之前被刷新。这样做绝不是个好方法,因为可能会导致数据文件丢失。

when 参数说明:

  • now    告诉shutdown立即执行。 例如:立即重新启动,执行 $ shutdown -r now
  • +n    n必须为数字,n告诉shutdown命令在多久之后执行。例如:系统将于10分钟后重新启动,$ shutdown -r +10
  • YYmmddHHMM    以年月日时分的方式告诉FreeBSD系统什么时候开始执行。例如:系统将于2013年10月11日15时18分执行重新启动,$ shutdown -r 1310111518

groadcast message(广播消息) 将定期向所有登录用户广播。这些消息在关闭系统之前的10小时开始广播,并随关闭时间的来临而变得越来越频繁(相当于倒计时)。

二、终止和重启相关命令

除了 shutdown 带参数这种关机外,还有 halt 和 reboot 命令分别用于终止和重新启动系统,但是建议大家不要依赖于这两个。因为两个都不运行 rc.shutdown 脚本,可能会导致某些程序意外终止而导发一些不必要的麻烦。而且这两个命令不允许指定延迟关闭系统,也不会向用户发出即将关闭系统的警告。如果作为系统管理员应该养成使用 shutdown 命令的方式来关闭系统的好习惯。