与进程相关的操作有:查看进程状态;设置进程运行,比如在前台或在后台运行;给进程发送命令;终止进程;对进程进行监控等。
相关的命令包括:

  • ps
  • netstat
  • lsof
  • pstree
  • pmap
  • jobs
  • bg
  • fg
  • kill
  • killall
  • top

1. 查看进程

查看进程的命令:ps,netstat,lsof,pstree,pmap
这几个命令都可以用来查看进程状态,但是侧重点有所不同:
ps(process state)主要用来查看进程信息;
netstat(net state)主要用来查看网络状态;
lsof(list open files)主要用来查看系统中所有的文件;
pstree用来查看进程树;
pmap(report memory map of a process)查看进程的内存映射关系。

查看进程的状态,进程的状态有哪些:运行中R、休眠中S、停止、中断、僵尸进程Z。
控制进程:进程中断、进程暂停、进程后台运行、进程前台运行。

  • ps

    1. ps -ef | grep 进程关键字
  • netstat,查看系统当前系统网络状态信息,包括端口、连接情况等

常用选项:
1)-t:指明显示tcp端口
2)-u:指明显示udp端口
3)-l:仅显示套接字
4)-p:显示进程标识符和程序名称,每一个套接字/端口,都属于一个程序
5)-n:不进行域名解析
6)-a:显示所有连接的端口

  1. netstat -aux|grep syslog
  • lsof

lsof的作用是列出当前系统打开文件(list open files),更详细的用法,可以在【2.6网络】中查看。
常用参数:
i:查看端口的连接情况,可查看当前系统所有打开的端口;
-i:端口号,可用来查看当前系统指定端口号的进程。

  1. lsof -i:22 查看端口22的连接情况

2. 设置进程运行

设置进程运行状态:jobs,bg,fg
jobs:显示所有的进程;
bg:设置进程到后台运行;也可以通过将指令后面添加&来将进程放到后台运行,比如ls &,会将ls命令放到后台运行;
fg:设置进程到前台运行

  1. jobs -l
  2. bg jobid
  3. fg jobid

3. 终止进程

终止进程常用的命令:kill,killall

  1. kill -9 进程id
  2. ps -ef|awk '{print $2}'|xargs kill -9 # kill掉所有的进程信息

4. 进程监控

监控进程信息:top,linux中使用top命令,类似windows中的任务管理器。top是常用的系统性能分析工具,每间隔1秒运行一次。
image.png

  • Processes:进程状态,包括运行中、休眠中等;
  • Load Avg:平均负载,分别表示1min、5min、15min内的平均负载,如果想看系统为什么运行这么缓慢,可以通过top或uptime来查看load avg这个指标;一般来说,平均负载不超过cpu的核数,比如单核的,load avg的指标在(0,1)之间比较正常,超给这个指标需要引起注意;
  • CPU usage:cpu的利用率,分别表示用户cpu占用率、系统cpu占用率、剩余可用的cpu
  • SharedLibs:共享库
  • MemRegions:常驻内存等
  • PhysMem:物理内存
  • VM:虚拟内存
  • Networks:网络
  • Disks:磁盘使用率