shell进程监控的实现(ps、sleep、kill)

寻技术 Linux / 其他编程 2023年08月14日 84

进程监控

1  获取进程状态信息:ps 命令

1、不带参数的 ps

不带参数的 ps 命令运行时,显示该用户当前活动进程的基本信息:

$ ps
PID        TTY        TIME        CMD
612        tty08      0:37        sh
931        tty08      0:01        ps
  • PID:进程标识号,系统每个进程在其生命周期都有一个唯一的 PID
  • TTY:启动该进程的终端号
  • TIME:进程累计占用 CPU 的时间
  • CMD:产生该进程的命令

2、带参数的 ps

① -e:显示系统中所有活动进程的信息

② -f:显示该进程的所有信息

2  暂停进程运行:sleep 命令

sleep 命令使运行它的进程暂停 time 指定的秒数,语法格式如下:

sleep time

例如:

$ sleep 5
[进程暂停5秒钟, 什么也不做]
$ sleep 10; who
[进程暂停10秒钟后, 显示系统中登录的用户名]
$ echo "I am sleeping..."; sleep 100; echo "I am awake."
I am sleeping...
[等待100秒钟]
I am awake.

3  终止进程运行:kill 命令

进程通常在以下三种情况下被终止运行:

  • 进程运行完成,自动消亡;
  • 用户按 Ctrl + c 或 Del 等中断键,强行终止前台进程的运行;
  • 用户发出 kill 命令,强行终止后台进程或键盘锁住了的前台进程的运行。

kill 命令的三种常用格式为:

① 正常结束进程,自动完成所有善后工作,作用类似于按 Del 键:

kill PID

② 先挂起该进程,终止子进程,完成善后工作,再终止该进程:

kill -1 PID

③ 立即强行终止该进程,不做任何善后工作,可能出现资源浪费和孤儿进程:

kill -9 PID
关闭

用微信“扫一扫”