linux管理和进程(2)

脱机管理问题:

在工作管理(job control)中提到的后台指的是在终端机模式下可以避免ctrl+c中断,并非放在系统后台中去,也就是说依然和终端机有关,那么若用远程连接方式连接到linux主机,并将工作以&方式放到后台中,如果在工作未结束的情况下脱机了,该工作还会继续吗,答案是否,工作会被中断

解决方法有两种:一种是at命令,将工作放置到系统后台,而与终端机无关,第二种是nohup命令,这个命令可以让你在脱机或者注销系统后,还能够让工作继续。


进程管理:相当重要

进程的查看:

ps:

ps aux  查看系统所有的进程数据

ps -l 仅查看自己的bash进程

僵尸进程(zombie):成因是因为进程已经执行完毕或者因故要终止,但是该进程的父进程却无法完整将该进程结束掉,而造成那个进程一直存在内存中,若发现某个进程的CMD后面还接上<default>,代表是僵尸进程。

top:动态下查看进程的变化


第一行显示的信息:开机时间,开机时长,已经登陆系统用户人数,系统在1,5,15分钟的负载,越小代表越闲置

第二行显示的是目前进程的总量和个别进程的状态:最后的zombie是僵尸进程,如果不是0就要注意了

第三行显示的是cpu的整体负载:注意的是wa选项,这个代表的是IOwait,通常你的系统变慢都是IO产生的问题比较大

第四行与第五行:表示物理内存和虚拟内存(swap)的使用情况,如果swap使用量很多,表示物理内存真的不够用


pstree:进程树

pstree -A 列出系统所有的进程树的相关性


可以看出所有的进程都是依附在init这个进程下面的,仔细看下,这个进程的PID是1号,因为是由linux内核主动调用的第一个进程,所以PID是一号。因此发生僵尸进程时需要重新启动,因为init要重启,二重启init就是reboot


程序是如何互相管理的:其实就是通过给予进程一个信号(signal)去告知该进程你想让它做什么。因此信号很重要,可以自行 man signal

那么如何传送一个信号给某个进程呢?通过kill或killall。

kill -signal PID

killall -signal 命令名称

比如:killall -1 syslogd 给予syslogd这个命令启动的PID一个SIGHUP的信号

           killall -9 httpd 强制终止所有以httpd启动的进程


posted on 2016-07-20 11:57  sichenzhao  阅读(80)  评论(0编辑  收藏  举报

导航