L inux关机命令详解
摘要:在l inux下一些常用的关机/重启命令有shutdown、 ha lt、 reb o ot、及init它们都可以达到重启系统的目的但每个命令的内部工作过程是不同的通过本文的介绍希望你可以更加灵活的运用各种关机命令.
在li nux下一些常用的关机/重启命令有shutdown、 ha lt、 reb o ot、及init它们都可以达到重启系统的目的但每个命令的内部工作过程是不同的通过本文的介绍希望你可以更加灵活的运用各种关机命令。
1.s hutd o w nshutdo wn命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭li nux这是十分危险的。因为linux与w indo ws不同其后台运行着许多进程所以强制关机可能会导致进程的数据丢失使系统处于不稳定的状态甚至在有的系统中会损坏硬件设备。
而在系统关机前使用shutd own命令系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的还可能重启。这是由所有进程〔proces s〕都会收到系统所送达的信号〔s ignal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。shutdo wn执行它的工作是送信号〔signa l〕给init程序要求它改变runleve l。 Runleve l 0被用来停机〔halt〕 runleve l 6是用来重新激活〔reb oot〕系统而runlevel 1则是被用来让系统进入管理工作可以进行的状态这是预设的假定没有-h也没有-r参数给s hutd own。要想了解在停机〔ha lt〕或者重新开机
〔reb o ot〕过程中做了哪些动作你可以在这个文件/etc/initt a b里看到这些runl eve ls相关的资料。 shutdown-h no w(立即关机且关闭电源)shut down参数说明:
[-t]在改变到其它runle ve l之前告诉init多久以后关机。
[-r]重启计算器。
[-k]并不真正关机只是送警告信号给每位登录者〔 login〕 。
[-h]关机后关闭电源〔halt〕 。
[-n]不用in it 而是自己来关机。不鼓励使用这个选项而且该选项所产生的后果往往不总是你所预期得到的。
[-c]cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数但是可以输入一个用来解释的讯息而这信息将会送到每位使用者。
[-f]在重启计算器〔rebo ot〕时忽略fsck。
[-F]在重启计算器〔reboot〕时强迫fs c k。
[-t ime]设定关机〔s hutdo w n〕前的时间。
2.halt----最简单的关机命令halt-p(关机后关闭电源)
其实ha lt就是调用s hutdo wn-h。 ha lt执行时杀死应用进程执行sync系统调用文件系统写操作完成后就会停止内核。
参数说明:
[-n]防止sync系统调用它用在用fsck修补根分区之后以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w]并不是真正的重启或关机只是写wtmp 〔/var/lo g/wtmp〕纪录。
[-d]不写wtmp纪录〔已包含在选项[-n]中〕 。
[-f]没有调用s hutdo wn而强制关机或重启。
[-i]关机〔或重启〕前关掉所有的网络接口。
[-p]该选项为缺省选项。就是关机时调用powe roff。
3.reb o otreboot的工作过程差不多跟halt一样不过它是引发主机重启而halt是关机。它的参数与halt相差不多。
4.in itinit是所有进程的祖先它的进程号始终为1 所以发送TERM信号给in it会终止所有的用户进程守护进程等。 s hutd o w n就是使用这种机制。 in it定义了8个运行级别(runleve l) init 0为关机 init 1为重启。关于init可以长篇大论这里就不再叙述。另外还有t elinit命令可以改变init的运行级别比如 te lin it-iS可使系统进入单用户模式并且得不到使用shutd own时的信息和等待时间。
最简单的L inux关机命令程序
#inc lude<s ignal.h>
#inc lude<std io.h>
#inc lude<unis td.h>
#inc lude<sys/reboo t.h>int main(int argc, char **argv)
{
/* first disable all our signals*/sigset_t set;sigfillset(&set);s igproc mask(SIG_B LO CK,&set,NULL);
/* send signals to all processes _except_pid 1 */printf("sending SIGTERM signal to all processes\n");kill(-1,SIGTERM);sync();s le ep(3);printf("sending SIGKILL signal to all processes\n");kill(-1,SIGKILL);sync();s leep(3);
/* s hutd own*/printf("s yste m shutdown\n");sleep(2);reboot(RB_POWER_OFF);
}
RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...
特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。公司名:珠海市特网科技有限公司官方网站:https://www.56dr.com特网云为您提供高速、稳定、安全、弹性的云计算服务 计算、存储、监控、安全,完善...
beervm是一家国人商家,主要提供国内KVM VPS,有河南移动、广州移动等。现在预售湖南长沙联通vds,性价比高。湖南长沙vps(长沙vds),1GB内存/7GB SSD空间/10TB流量/1Gbps端口/独立IP/KVM,350元/月,有需要的可以关注一下。Beervm长沙联通vps套餐:长沙联通1G青春版(预售)长沙联通3G标准版(预售)长沙联通3G(预售)vCPU:1vCPU:2vCPU...