退出和关闭linux
- 1.exit命令
- 2.sync命令
- 3.shutdown命令
- 4.reboot、halt和poweroff命令
- 5.systemctl命令
在真正关机之前,需要先观察一下系统的状态。 可以先通过who命令查看系统中所有在线的用户,通过netstat -a命令查看linux主机的网络联机状态。 通过ps -aux查看当前系统中所有正在运行的进程状态。 通过这些命令可以大致了解主机的状态,通过这些主机状态判断是否适合关机。
如果当前系统中有很多用户已经登录在线,是不能贸然关机的。 在关机之前需要先通过write或者wall命令通知用户做好关机之前的准备工作。 当然更合理的做法是使用shutdown命令来达到通知并关机的功能。
常用的关机和重启命令有shutdown、reboot、halt、poweroff等,以及手动将数据写入硬盘的sync命令
1.exit命令
回到顶部大多数时候我们是通过ssh工具远程连接到linux主机,在处理完相应的工作后,直接使用exit命令退出系统就可以了。
一般我们都是以普通用户登录linux,但在处理一些系统性方面的工作是可能需要root权限,有时候会使用su命令切换到root用户, 在处理完相应的工作后,也要用exit命令及时退出:
[peter@initroot ~]$ exit
exit关闭当前登录会话有关的进程,只是退出登录,exit并没有关闭linux。如果是通过ssh远程连接linux主机,exit会关闭ssh远程连接以及由ssh产生的相关登录会话进程。
如果是本地登录linux主机,exit关闭login进程产生的登录会话进程,退出登陆后,系统又会回到login登录界面。
2.sync命令
回到顶部[root@initroot ~]# sync我们在计算机系统原理中已经了解到所有的数据在被CPU处理之前都要先读入内存中, 数据经cpu处理后还会再放入内存中,用户需要的结果数据会由内存写到硬盘中,这就是保存的动作。
例如用vim文本编辑器编辑/etc/nginx.conf文件,/etc/nginx.conf由硬盘读入内存, 正在编辑的文件数据存放在内存中,编辑完后需要按下:w将文件保存后才能退出vim。这个保存的动作其实就是将内存中的文件数据写入磁盘中。 由于硬盘的速度相对于内存太慢,让数据在内存与硬盘中来回读出和写入就会大大降低系统的性能。 在Linux系统中,为了不影响系统的整体性能,某些已经加载到内存中的数据不会立刻写回硬盘,而是先暂存在内存中,在未来某个时刻才回写到磁盘中。 但是如果在保存之前系统突然断电,数据没有来得及写入硬盘!就可能造成系统数据的丢失,再次启动后就可能会出现一些莫名奇妙的错误! 一个良好的习惯是时不时的使用sync命令,特别是在系统关机或重启之前,一定要执行多执行几次snyc命令!
不过让用户经常性的去执行sync命令确实是很愚蠢的行为,事实上linux在后台会定期执行sync, shutdown/reboot/halt等命令在执行之前也会自动执行sync。
不过,经常性的手动执行sync命令也不失为一个良好的习惯。 要注意的是一般身份用户也可以执行sync命令,只不过保存的只是和用户自己相关的数据。
而root用户可以保存整个系统的数据。
所以在执行sync命令之前最好先su -切换到root用户:
[peter@study ~]$ su - Password: Last login: Mon Jun 1 16:10:12 CST 2020 on pts/0 [root@initroot ~]# sync
3.shutdown命令
回到顶部最常使用的关机和重启命令就是shutdown命令,shutdown在关机之前会先通知系统中的一些重要服务进程(processes), 以便这些系统服务进程在关机之前可以正常关闭。 shutdown也是推荐的安全关机命令,shutdown命令既可以用来关机也可以用来重启,并且可以设置关机或重启的时间。 shutdown命令在关机或重启之前会通知系统中所有在线的用户,可以自定义通知信息。 另外我们也可以用shutdown命令给在线用户发送一些警告信息。
shutdown命令的使用规则如下:
[root@initroot ~]# /sbin/shutdown [-krhc] [时间] [警告信息]选项与参数:
-k : 只发送警告信息,并不关机!例如希望系统10分钟后关系,并且在关机之前给所有的在线用户发送消息'I will shutdown after 10 mins':
-r : 重启选项(常用),重启之前会先停掉系统服务;
-h : 关机选项(常用),关机之前会先停掉系统服务;
-c : 取消正在进行的shutdown命令计划。
[root@initroot ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins' Shutdown scheduled for Sat 2020-02-22 20:53:16 CST, use 'shutdown -c' to cancel. I will shutdown after 10 mins The system is going down for power-off at Sat 2020-02-22 20:53:16 CST!可以输入shutdown -c来取消这次关机命令。 如果没有时间参数,shutdown命令默认会在1分钟后自动执行。
如果没有任何选项和参数,只是单纯的shutdown命令,系统默认会在1分钟后关机。
以前shutdown后面一定得加时间参数才行,如果没有加上的话,系统会跳到单人维护模式!
时间参数除了上面的分钟数外,还有如下格式:
如果想让系统立刻关机,时间参数可以使用now:
[root@initroot ~]# shutdown -h now这里的now相当于0;
希望系统在今天的20:25自动关机:
[root@initroot ~]# shutdown -h 20:25如果上面的命令是在20:25之后执行的,就会在第二天的20:25关机;
十分钟后自动关机:
[root@initroot ~]# shutdown -h +10立刻重启:
[root@initroot ~]# shutdown -r now30分钟后重启,重启之前通知所有在线用户,通知消息为'The system will reboot':
[root@initroot ~]# shutdown -r +30 'The system will reboot'给所有在线用户发出遵守法律警告,但不关机: [root@initroot ~]# shutdown -k now 'Please abide by Chinese laws,anything against the law and discipline is forbidden!'
shutdown [OPTIONS...] [TIME] [WALL...]
Shut down the system.
--help Show this help
-H --halt Halt the machine
-P --poweroff Power-off the machine
-r --reboot Reboot the machine
-h Equivalent to --poweroff, overridden by --halt
-k Don't halt/power-off/reboot, just send warnings
--no-wall Don't send wall message before halt/power-off/reboot
-c Cancel a pending shutdown
4.reboot、halt和poweroff命令
回到顶部[root@initroot ~]# sync [root@initroot ~]# sync [root@initroot ~]# sync [root@initroot ~]# reboot就像前面提到的,习惯性的多执行几次sync.
reboot [OPTIONS...] [ARG]系统停止~屏幕可能会保留系统已经停止的讯息:
Reboot the system.
--help Show this help
--halt Halt the machine
-p --poweroff Switch off the machine
--reboot Reboot the machine
-f --force Force immediate halt/power-off/reboot
-w --wtmp-only Don't halt/power-off/reboot, just write wtmp record
-d --no-wtmp Don't write wtmp record
--no-wall Don't send wall message before halt/power-off/reboot
[root@initroot ~]# sync; sync; sync; halt系统关机,所以没有提供额外的电力,屏幕空白:
[root@initroot ~]# sync; sync; sync; poweroff更多halt与poweroff的选项功能,请查询man page! 事实上shutdown、reboot、halt和poweroff这些命令最终都是调用的systemctl命令。
5.systemctl命令
回到顶部上面提到的所有关机和重启的命令halt, poweroff, reboot, shutdown、init等内部都是调用的systemctl命令。 systemctl命令是linux下最新的系统服务管理命令。 systemctl命令涉及的管理功能非常庞杂,这里只了解和关机重启有关的参数选项即可。 systemctl命令用法如下所示:
[root@initroot ~]# systemctl [指令]和关机重启有关的指令参数:
halt :进入系统停止的模式,屏幕可能会保留一些讯息,与电源管理模式有关;重新启动系统:
poweroff :进入系统关机模式,直接关机没有提供电力;
reboot :重新启动;
suspend :进入休眠模式;
[root@initroot ~]# systemctl reboot系统关机:
[root@initroot ~]# systemctl poweroffsystemctl详细介绍查看 linux系统服务管理
initroot编辑整理,转载请注明出处 www.initroot.com
100次点赞
100次阅读