命令行下Linux的多用户、多任务以及关机方法
学习Linux,兴趣是最好的老师,假如你只对图形界面有觉得,选择学习Linux其实不是一个最佳选择,由于Linux的命令行尤其出众。来到Linux世界,最好的办法还是保持对命令行的兴趣,把图形界面抛到脑后。有了兴趣,接出来怎样做呢?老话说只看不练假把式,要想有一个健康强健的身体,惟有不断运动,坚持锻练。同样道理,要想学好Linux,就要进行实战,在实验环境中不断练习。明天,我们就先来聊一聊命令行下Linux的死机技巧。
Linux的多用户、多任务
我们晓得Windows系统,假如有人使用远程桌面登陆了系统,当另外一个用户也要远程访问这台Windows机器时,系统会提示之前的用户会被强制断掉远程联接。也就同一时刻,只能有一个用户使用一台Windows系统的计算机。而Linux支持多用户、多任务。同一时刻,可以有多个用户同时登陆一台Linux主机,可以远程,也可以本地,其实呢本地只能有一个用户登入。并且linux下的大多程序是支持多用户的,例如Linux中的文本编辑器vi,多个用户同时登陆了Linux,也可以同时使用vi。
Linux的这些多用户、多任务的特点促使Linux系统的死机显得比较重要,不能像使用Windows系统一样随便点击死机按键关掉系统了。试想,Linux环境中,同时有多个远程用户在使用一台服务器,每位远程用户都在执行一些任务,其中一个用户执行了立即死机命令,其它用户的数据未经保存,来不及讲到文件中,导致数据的遗失和文件系统的受损,那可就让人蛋痛了linux入门,非常是在实际工作环境中这些情况是须要避免发生的。
Linux的运行级别
简单的说,运行级就是操作系统当前正在运行的功能级别。Linux的运行级别从1到6,具有不同的功能。
以下是不同的Linux的运行级别的涵义:
#0-停机。把initdefault设置为0约等于自尽,若果是新上架的机器你还可以有机会重装系统,倘若是生产系统那你就哭吧!
#1-单用户模式
#2-多用户,没有NFS。NFS是NetworkFileSystem的简写,Linux环境中的c盘共享
#3-完全多用户模式,这也是Linux系统默认的运行级别
#4-安全模式
#5-Xwindows图形界面
#6-重新启动
老版本的Linux的运行级别在/etc/inittab文件里指定。这个文件是init程序找寻的主要文件,最先运行的服务是置于/etc/rc.d目录下的文件。在大多数的Linux发行版本中,启动脚本都是坐落/etc/rc.d/init.d中的。这种脚本被用ln命令联接到/etc/rc.d/rcn.d目录。(这儿的n就是运行级0-6),init启动时,它会在/etc/inittab内查找默认的运行级别,一般是3多用户模式。而在CentOS7当中不再使用/etc/inittab的运行级别设置,但仍然可以使用init0来死机。
这么Linux环境下到底如何能够正确的死机呢?
第1步:作为管理员,第一步要查看谁在使用这台机器,有什么用户,用户正在执行什么程序
查看谁在这台Linux服务器,使用的命令是who。在命令行执行可以返回什么用户通过那个终端在何时登陆了这台服务器,登入时使用的IP地址是哪些,如右图示。
查看谁在使用系统
查看所有用户下在执行的程序可以使用ps命令加适当的参数,ps命令的具体使用方式在之后实验中会详尽说明。
查看在运行的程序
第2步:通知其它用户系统即将死机
可以在执行死机命令前以电邮或电话等形式通知其它在线使用者系统即将死机,也可以在执行死机命令时加参数在其它使用者屏幕提示死机时间。指出一点,死机前事先通知很重要!!!通知的方式不同的公司有相应的运维管理制度,勿必遵守要求执行,否则后果很严重。
数据遗失很严重
第3步:死机命令的正确使用
在Linux系统中硬盘安装linux,为了推动数据的读取速率,在默认的情况下,正在执行的数据会先暂时保存在显存当中,也就是Cache,而不是直接讲到硬碟中保存。因为显存的读取速率比硬碟要快10位以上,这些运行机制,致使缓存在显存中数据读取速率要快上许多。
不过,这些运行机制也会带来一些问题,那就是一旦LinuX系统由于个别特殊情况导致不正常死机,比如在机房的异常断电或则维护人员失误操作直接关掉了服务器电源的情况下,有一部份数据储存在缓存中还没有写入硬碟当中,进而导致部份数据的遗失,文件受损。这会对系统的正常运行是严重的影响。那在Linux系统中如何防止这些意外呢?有个sync指令拿来把缓存中有更新的数据的写入到c盘。shutdown/reboot/halt等命令在死机动作之前会调用sync命令更新数据写入c盘,但为了更保险死机前多执行几次sync命令吧!
死机命令:shutdown
系统管理员会通知所有登陆的用户系统即将关掉,但是新的用户不能再登陆。通过执行参数shutdown命令可以直接关掉Linux主机或则在指定时间后死机,或执行死机操作再重新启动主机。在这个过程中其它用户运行的像vi、mail之类的程序可以有时间把正在编辑的文档保存并正常退出。shutdown命令发送讯号给init程序,要求它改变系统运行级别runlevel为0。shutdown命令可以完成以下操作:
1.死机模式选择:是要死机或重新启动均可。
2.死机时间选择:可以指定立即死机,也可以指定在某一个特定的时间死机。
3.死机告警信息:在死机之前linux shutdown参数,可以将指定的信息发送给正在登陆的用户。
4.仅显示警告信息:有些情况下要进行一些系统维护或更新操作,在这段时间不想让其他的用户登入系统以免引起数据遗失或其它问题,这些情况可以使用shutdown命令加适当的参数来通知其它用户,但实际上并不是真的要关掉系统。
这么shutdown命令究竟如使用何呢?直接执行shutdown呢还是须要加参数后执行呢?随时随地的“man”一下,是个挺好的学习Linux的习惯。也可以使用shutdown--help来查看命令的使用方式,相比较而言,manshutdown返回的是更详尽的命令解释。
shutdown命令使用说明
shutdown命令简单的句型规则是:
shutdown[-krhc][时间][警告信息内容]
参数说明:
-k:并不是真的死机,只发送警告信息给登陆用户
-r:在将系统的所有服务关掉以后立即重新启动系统
-h:将系统的所有服务关掉以后,立即死机。
-c:取消早已在进行的shutdown命令操作。
时间:指定系统死机的时间!若没有这个参数,系统默认1分钟后手动执行shutdown操作。
shutdown简略帮助
应用示例:
在执行命令shutdown-h10’Systemwillshutdownin10minitus,pleasesaveyourfile!!!’以后,系统告诉你们,这台机器将会在十分钟后死机!而且会将信息反复显示在使用者屏幕上!在10分钟之内系统管理员可以输入shutdown-c来取消此次的死机指令。如右图示
假如你在执行shutdown命令时哪些参数都没有加,直接执行shutdown命令后,系统默认会在1分钟后进行死机!
shutdown-hnow立即死机,等同于shutdown-h0
shutdown-h23:00系统在23:00死机,若在23:00事执行此命令,则系统会在第二天23:00死机
shutdown-h+10系统再过十分钟后手动死机
shutdown-rnow系统立即重新启动
shutdown-r+10‘Warning!!!Thesystemwillrebootin10minitues’再过十分钟系统会重新启动,并显示旁边的告警信息给所有正在登陆的用户
reboot命令可以起到和shutdown-r相同的作用,建议执行reboot命令前执行几次数据写入命令sync,保证数据同步写入到c盘。
reboot-help
死机命令halt,poweroff与shutdown的区别
shutdown命令发送讯号给init程序,要求它改变运行级别runlevel为0,init0会在进行数据写入c盘等操作后调用halt或则poweroff。在没有acpi管理的系统上,halt只是关掉了操作系统,主机仍处于电源加电状态linux shutdown参数,须要自动按电源按键断电,而poweroff会发送一个关掉电源的讯号给acpi。在CentOS7中使用systemd来进行服务管理,这三个命令没有区别,由于halt、poweroff、shutdown都是以符号链接到/bin/systemctl的,如右图所示。所以,你只须要按自己的使用习惯选择其中一个命令就好。
CENTOS7下systemctl实现死机
CentOS7.x开始,CentOS开始使用systemd服务来取代daemon,原先管理系统启动和管理系统服务的相关命令全部由systemctl命令来取代。
#systemctl[命令]
命令参数包括:
halt步入系统关掉的模式,电源可能不切断
poweroff步入系统死机模式,电源切断
reboot直接重新启动
suspend系统挂起,步入休眠模式
比如重新启动系统,可以执行命令#systemctlreboot
systemctl--help
结束语:
正确的使用开关机命令可以避免硬件的异常受损,保证系统的正常、稳定的运行。
1.为了防止瞬间断电导致的Linux文件系统受损,建议做为服务器的Linux主机使用双电源+UPS系统来持续提供稳定的电力;
2.养成良好的操作习惯,防止直接使用root身分直接登陆系统,创建普通用户登陆系统、以普通用户身分启动应用程序。
3.遵守正确的系统死机形式,避免系统及硬件的毁坏,正确使用shutdown,poweroff等指令死机。