在LInux系统下,最困难的工作之一就是跟踪正在系统中运行的程序,尤其是现在,图形桌面使用很多的程序,只是为了生成一个桌面环境,系统中运行了太多的进程,幸运的是,
有一些命令行工具可使这些任务轻松些,下面介绍四个基本工具:
一、进程的查看:
1.特定时间进程监控:ps
默认情况下,ps命令不会显示太多的信息,只显示属于当前用户并且正在当前终端运行的进程,如下图:
Linux系统中使用的GNU ps支持Unix类型参数、BSD类型参数、GNU长参数三种不同的命令行参数,下面只介绍Unix类型参数和示例:
上面列出了许多参数,但请记住,这只是其中的一部分!使用ps命令的关键不是记住所有可用的参数,而是仅记住最有用的,大多数的Linux系统管理员都有一套自己的一组常用参数,
用于提取相关信息。例如,需查看系统上运行的一切进程的详细信息,可以这样:
为节省空间,上图删去了很多行。每个信息列标题的含义如下:
如果需要更详细的信息,可以用-l命令,简要结果如下:
需要注意的是,显示结果的额外列的含义:
另外,比较方便的一个参数是-H,它会让结果分层显示,效果类似下图:
总结:ps命令,用于特定时间查看进程,比较常用的参数有-e、-f、-l、-H等,它的缺点是不能实时监控系统进程,所以,有了top的用武之地……
2.实时进程监控:top
选择top的原因,主要是更准确掌握在内存中换进换出的进程趋势,其中,输出的第一部分显示一些系统信息,如当前时间、进程信息、Cpu信息等等,如下图所示,
其中,黄色底纹标题的具体含义如下:
top的具体交互式命令,如下图:
可见,通过top命令,可是第一时间查到异常进程,接下来要做的,就是阻止异常进程,这要依靠以下停止进程的命令了……
二、停止进程:
在Linux中,各进程使用信号互相通信,进程信号时进程可识别的预定义信息,这些由开发人员规划。大多数精心编写的程序都能够接收标准Unix进程信号,
并对此作出响应,这些信号如下表所示:
Linux提供了以下两个命令用于发送进程信号给运行中的进程。详解如下:
1.kill命令
kill命令允许通过进程ID(PID)将信号发送给相关的进程。使用此命令时要注意用户权限,必须是该进程的所有者或者已作为跟用户登陆。
另外,如果某个进程失控,需要借助-s参数,来外加信号终止它,例如,可以使用KILL强制终止进程。
2.killall命令
killall命令非常强大,它可以根据进程的名称而不是难以记住的PID来停止进程。同时它还允许使用通配符,对于处理出错的系统极为有用。
但需要注意的是,作为根目录登陆是,killall命令要格外小心使用通配符,这样很容易意外停止重要的系统进程,导致文件系统受损!