05-009 【Linux】进程管理

1.进程的基本介绍

  1. 在Linux中,每个执行的程序(代码)都称为一个进程。每个进程都分配一个ID号。
  2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器。
  3. 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

2.显示系统执行的进程

  1. ps -aux
    选项:
    • -a:显示当前终端中所有进程信息
    • -u:以用户格式显示进程信息
    • -x:显示后台进程运行的参数
      在这里插入图片描述
      信息:
  • USER:用户名
  • PID:进程识别号
  • %CPU:占用CPU
  • %MEM:占用内存
  • VSZ:虚拟内存
  • RSS:物理内存使用情况
  • TTY:终端机号
  • STAT:进程状态 s:休眠 r:运行
  • START:启动时间
  • TIME:消耗CPU时间
  • CMD:正在执行的命令或进程
  1. ps -aux | grep xxx,举例:查看sshd服务ps -aux|grep sshd
  2. 应用实例:以全格式显示当前所有进程,查看进程的父进程
    ps -ef | more
    -e:x显示所有进程 -f:全格式
    在这里插入图片描述
    信息:
    • UID:用户 ID
    • PID:进程 ID
    • PPID:父进程 ID
    • C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
    • STIME:进程启动的时间
    • TTY:完整的终端名称
    • TIME:CPU 时间
    • CMD:启动进程所用的命令和参数

查看 sshd 进程的父进程号:ps -ef | grep sshd (实际开发中常用

3.终止进程 kill 和killall

如果某个进程执行一半需要停止时,或已经消耗了很大的系统资源时,可以考虑停止该进程,用kill。

  1. 语法
    • kill 【选项】进程号 kill -9 xxx:强制停止(少用)
    • killall 进程名(支持通配符,系统因负载过大而变慢时很有用)
  2. 案例
    • 踢掉非法远程登录 ps -aux|grep sshd 查出非法的 kill 1010
    • 终止多个gedit编辑器 killall gedit
    • 强制关掉一个终端 kill -9 4090

4.查看进程树 pstree

  1. 语法
    pstree 【选项】,可以更加直观的查看进程信息
    常用选项:
    -p:显示进程的pid
    -u:显示进程所属用户

5.服务(Service)管理

  1. 服务本质就是进程,但是是在后台运行的,通常都会监听某个端口,等待其他程序的请求,比如mysql、sshd、防火墙等等,因此又称为守护进程,是Linux中非常重要的知识点。
    在 CentOS7.0后,不再使用service,而是systemctl
    在这里插入图片描述
    【指令】service 服务名[start|stop|restart|reload|status]
    【举例】防火墙,这种方式临时生效,可以用Telnet测试
  • service iptables status
  • service iptables stop
  • service iptables start
    在这里插入图片描述
  1. 查看服务名
    1)setup指令到系统服务中可以看到
    在这里插入图片描述
    2)ls -l /etc/init.d/ 可以列出系统有哪些服务

  2. 服务的运行级别
    查看或者修改默认级别: vi /etc/inittab
    Linux 系统有 7 种运行级别(runlevel):常用的是级别 3 和 5
    运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
    运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆
    运行级别 2:多用户状态(没有 NFS),不支持网络
    运行级别 3:完全的多用户状态(有 NFS),登陆后进入控制台命令行模式
    运行级别 4:系统未使用,保留
    运行级别 5:X11 控制台,登陆后进入图形 GUI 模式
    运行级别 6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动

  3. chkconfig指令
    通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭
    1)查看服务

    • chkconfig --list | grep xxx
    • chkconfig iptables --list
    • chkconfig --list
      2)chkconfig --level 具体级别 服务名 on/off
    • chkconfig --level 5 iptables off
    • chkconfig iptables on (所有运行级别下,开启防火墙)

    chkconfig重新设置服务后自启动或关闭,reboot才能生效。

5.动态监控进程(重要)

top与ps命令很相似。它们都是用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的程序。

  1. 语法:top 【选项】
    • top -d 秒数
    • top -i 不再显示任何闲置或者僵死的进程
    • top -p 通过指定监控进程ID来仅仅监控某个进程的状态

交互操作说明

操作 功能
P 以CPU使用率排序,也是默认的
M 以内存使用率来排序
N 以PID排序
q 退出top
  1. 应用实例
    案例1:监视特定用户
    top:查看执行的进程
    u:输入u回车,再输入用户名
    在这里插入图片描述
    案例2:终止指定进程
    top:查看
    k:然后输入k回车,再输入要结束的pid

案例3:指定系统状态更新的时间(例如每隔10秒自动更新,默认3秒)
top -d 10

6.查看系统网络情况(重要)

  1. 语法
    netstat 【选项】
    netstat -anp -an :按一定顺序排列输出 -p:显示哪个进程在调用
  2. 案例
    查看系统所有的网络服务
    netstat -anp | more
    查看服务名为 sshd 的服务的信息
    netstat -anp | grep sshd

学习整理于 Linux.

发布了55 篇原创文章 · 获赞 0 · 访问量 522

猜你喜欢

转载自blog.csdn.net/weixin_40778497/article/details/104055189
今日推荐