Linux进阶学习:systemctl(service与chkconfig)与Top深度学习

想要查看前面的笔记请翻阅我的CSDN博客,作者码字不易,喜欢的话点赞,加个关注吧,后期还有很多干货等着你!

1. systemctl命令

解释:systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。我们分开去介绍一下 ,最后返璞归真去理解systemctl

1.1 service命令:

解释:service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
语法:

service(选项)(参数)

## 选项
-h:显示帮助信息;
--status-all:显示所服务的状态。

## 参数
服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;
控制命令:系统服务脚本支持的控制命令。

实例:

## 查看网络状态
service network status
## 重启网络
service network restart
## 查看mysql状态
service mysqld status
重启mysql
service mysqld restart

1.2 chkconfig命令:

解释:chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
语法:

chkconfig(选项)

## 选项
--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。

等级代号列表:

  • 等级0表示:表示关机
  • 等级1表示:单用户模式
  • 等级2表示:无网络连接的多用户命令行模式
  • 等级3表示:有网络连接的多用户命令行模式
  • 等级4表示:不可用
  • 等级5表示:带图形界面的多用户模式
  • 等级6表示:重新启动

实例:

chkconfig --list             #列出所有的系统服务。
chkconfig --add httpd        #增加httpd服务。
chkconfig --del httpd        #删除httpd服务。
chkconfig --level httpd 2345 on        #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
chkconfig --list               #列出系统所有的服务启动情况。
chkconfig --list mysqld        #列出mysqld服务设置情况。
chkconfig --level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭。
chkconfig mysqld on            #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级。

如何增加一个服务:

  1. 服务脚本必须存放在/etc/ini.d/目录下;
  2. chkconfig --add servicename在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
  3. chkconfig --level 35 mysqld on修改服务的默认启动等级。

以上我们初步了解到了service与chkconfig的用法,做个总结,service是对服务的启停等状态的控制,而chkconfig是对服务本身的管理。

下面我们看一下systemctl是如何替代service与chkconfig的吧:

任务 旧指令 新指令
使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service (服务详细信息)systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service

实例
1.启动nfs服务

systemctl start nfs-server.service

2.设置开机自启动

systemctl enable nfs-server.service

3.停止开机自启动

systemctl disable nfs-server.service

4.查看服务当前状态

systemctl status nfs-server.service

5.重新启动某服务

systemctl restart nfs-server.service

6.查看所有已启动的服务

systemctl list -units --type=service

6.开启防火墙22端口并关闭防火墙

iptables -I INPUT -p tcp --dport 22 -j accept
如果仍然有问题,就可能是SELinux导致的

## 关闭SElinux:

修改/etc/selinux/config文件中的SELINUX=””为disabled,然后重启。

## 彻底关闭防火墙:

sudo systemctl status firewalld.service
sudo systemctl stop firewalld.service          
sudo systemctl disable firewalld.service

1. top命令

解释:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

$top
    top - 09:14:56 up 264 days, 20:56,  1 user,  load average: 0.02, 0.04, 0.00
    Tasks:  87 total,   1 running,  86 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.2%st
    Mem:    377672k total,   322332k used,    55340k free,    32592k buffers
    Swap:   397308k total,    67192k used,   330116k free,    71900k cached
    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      20   0  2856  656  388 S  0.0  0.2   0:49.40 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S  0.0  0.0   7:15.20 ksoftirqd/0
    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

第一行(09:14:56 up 264 days, 20:56, 1 user, load average: 0.02, 0.04, 0.00)

  • 09:14:56 : 系统当前时间
  • 264 days, 20:56 : 系统开机到现在经过了多少时间
  • 1 users : 当前2用户在线
  • load average: 0.02, 0.04, 0.00: 系统1分钟、5分钟、15分钟的CPU负载信息

第二行(Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie)

  • Tasks:任务;
  • 87 total:很好理解,就是当前有87个任务,也就是87个进程。
  • 1 running:1个进程正在运行
  • 86 sleeping:86个进程睡眠
  • 0 stopped:停止的进程数
  • 0 zombie:僵死的进程数

第三行(Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st)

  • Cpu(s):表示这一行显示CPU总体信息
  • 0.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。
  • 0.7%sy:内核占用CPU时间百分比
  • 0.0%ni:改变过优先级的进程占用CPU的百分比
  • 99.7%id:空闲CPU时间百分比
  • 0.0%wa:等待I/O的CPU时间百分比
  • 0.0%hi:CPU硬中断时间百分比
  • 0.0%si:CPU软中断时间百分比
    注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;

第四行(Mem: 377672k total, 322332k used, 55340k free, 32592k buffers)

  • Men:内存的意思
  • 8175320kk total:物理内存总量
  • 8058868k used:使用的物理内存量
  • 116452k free:空闲的物理内存量
  • 283084k buffers:用作内核缓存的物理内存量

第五行(Swap: 397308k total, 67192k used, 330116k free, 71900k cached)

  • Swap:交换空间
  • 6881272k total:交换区总量
  • 4010444k used:使用的交换区量
  • 2870828k free:空闲的交换区量
  • 4336992k cached:缓冲交换区总量

进程信息:( PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND)

  • PID:进程的ID
  • USER:进程所有者
  • PR:进程的优先级别,越小越优先被执行
  • NInice:值
  • VIRT:进程占用的虚拟内存
  • RES:进程占用的物理内存
  • SHR:进程使用的共享内存
  • S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  • %CPU:进程占用CPU的使用率
  • %MEM:进程使用的物理内存和总内存的百分比
  • TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  • COMMAND:进程启动命令名称

top命令交互操作指令:(注意大小写)

  • q:退出top命令
  • :立即刷新
  • s:设置刷新时间间隔
  • c:显示命令完全模式
  • t::显示或隐藏进程和CPU状态信息
  • m:显示或隐藏内存状态信息
  • l:显示或隐藏uptime信息
  • f:增加或减少进程显示标志
  • S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
  • P:按%CPU使用率排行
  • T:按MITE+排行
  • M:按%MEM排行
  • u:指定显示用户进程
  • r:修改进程renice值
  • kkill:进程
  • i:只显示正在运行的进程
  • W:保存对top的设置到文件^/.toprc,下次启动将自动调用toprc文件的设置。
  • h:帮助命令。
  • q:退出
    注:强调一下,使用频率最高的是P、T、M,因为通常使用top,我们就想看看是哪些进程最耗cpu资源、占用的内存最多; 注:通过”shift + >”或”shift + <”可以向右或左改变排序列 如果只需要查看内存:可用free命令。只查看uptime信息(第一行),可用uptime命令;

おすすめ

転載: blog.csdn.net/weixin_42842069/article/details/110087205
おすすめ