我们在在使用windows的时候有时候可能会感觉到电脑很卡,而且会找到任务管理器去关掉某个进程。。。
这都是很正常的,在我们的linux 下其实也是可以管理他的进程的。。。
ps: 他的作用是查看linux 下所有在运行文件的进程信息的,配合相关的参数即可查看到具体的进程信息。。
ps -ef:加了ef既可以看整个linux下所有的进程信息,如下所示。。。
他们各自表示的意思如下所示。。。
uid:表示的是用户的id,是基于那个用户在使用的。。
pid:表示他的进程号是多少。。。
ppid:表示父进程,有点类是无限极分类的作用,比如第一条为例,ppid是0,他派生出来的子进程是1,如此类推。。。
c:cpu的使用率
stime:进程被创建的时间
tty:与进程有关的终端类型
time:进程所使用的cpu时间
cmd:创建该进程的命令。。
ps aux,如下所示:
user:进程的用户
pid:进程的id
%cpu : 表示cpu的使用率
%mem : 表示内存的使用率
vsz:该进程使用的虚拟内存量
rss:该进程占用的固定内存量
tty:该进程在哪个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)。若为pts/0等,则表示由网络连接主机进程;
start :该进程被触发启动的时间
time:该进程实际使用cpu运行的时间
command:命令的名称和参数
一般我们都是通过使用配合命令来进行查找的,如下所示:
比如我要直接查找sendmail的进程,那么我们直接使用 ps aux | grep sendmail 这样即可进行精确的查询了。。
其实在 linux下,他的进程是进行分类的。。。
如守护进程(或者后台进程),这是开机时候他会自动启动的。。
比如开机自动启动的sendmail 他是linux 自带的邮件邮件传输代理程序,他是开机就自动启用的:
那么我们也能人为的将他停掉,然后在来看看发生了什么变化,如下所示:
如果程序关掉进程还在运行,那么我们可以通过killall 来进行杀进程,但是强烈不推荐使用这种方法关掉,因为很容易导致文件损坏或者文件丢失的现象。。。
这里其实是已经完美的杀死了,因为他没有继续再派生出新的进程了。。。。。
有些时候会发现还没有被完成全杀死,因为我们只是将他的子进程给干掉了而已,但是他的父进程xxxx还是没有干掉的,从而他的父进程会再继续派生出新的子进程,这也是linux的设计者们设计的安全机智。。。
我们如果想真的杀死他,只需要直接杀掉父进程即可阻止他继续派生出新的子进程了。。。
我们使用命令 kill xxxx 回车即可,如下所示:
小结:killall 和kill 的不同之处:killall 虽然他可以直接干死大量的派生出来的进程但他如果有新派生的将无能为力,但是kill 直接杀父进程的他既可完美解决问题。。。