文章目录
12 进程管理
12.1 概念
1)在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
3)每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
12.2 ps -aux
查看当前进程,或者加入管道命令|得到我们关注的进程
其中,
- STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
- STARTED:进程的启动时间
- TIME:CPU时间,即进程使用CPU的总时间
-
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
或者命令ps -ef 以全格式显示当前所有的进程
12.3 kill和killall
在windows中,我们常常用可视化来终止,但在linux中,我们常常用命令行。
- kill [选项] 进程号 (功能描述:通过进程号杀死进程 选项-9表示强制终止)
- killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
12.4 pstree
以树状图的形式来显示进程
选项:
-p :显示进程的PID
-u :显示进程的所属用户
12.5 进程管理之服务(service)管理
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux 中非常重要的知识点。
service管理指令:
service 服务名 [start|stop|restart|reload|status]
在CentOS7.0后不再使用service,而是systemctl
示例:
- service iptables status 查看当前防火墙的状况,关闭防火墙和重启防火墙
注意:
- 关闭或者启用防火墙后,立即生效。
- telnet ip [端口] 利用telnet指令检查linux的某个端口是否在运行
talnet 192.168.184.130 22(在window下测试) - service iptables stop;service iptables start
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令
12.6 查看服务名
方式1:使用菜单栏setup-系统服务
方式2: more /etc/init.d/服务名称
12.7 运行级别
查看或者修改默认级别: vim /etc/inittab
Linux系统有7种运行级别(runlevel):常用的是级别3和5
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS),不支持网络
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
开机的流程说明:
12.7.1 chkconfig –list
查看所有的服务在不同级别下的自启动按钮
- chkconfig -list | grep sshd 如果只关心一个服务,那就用grep进行筛选
- chkconfig sshd –list 或者直接输入该服务名
- chkconfig --level 5 服务名 直接修改sshd在某个级别下自启动
- chkconfig ssh off 如果在所有级别下都修改某个服务的自启动,那就不要加level这个词。
- 设计好之后,一定要reboot
12.8 进程管理之监控服务——top [选项]
top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程(默认每3秒变化一次)
选项:
交互操作说明:
应用实例:
- 如何监视特定用户
top:输入此命令,按回车键,查看执行的进程
u:然后输入“u”回车,再输入用户名 - 如何终止指定的进程
top:输入此命令,按回车键,查看执行的进程
k:然后输入“k”回车,再输入要结束的进程ID号
12.9 netstat [选项]
选项:
-an 按一定顺序排列输出
-p 显示哪个进程在调用
应用案例:
- netstat –anp | grep sshd 查看服务名为 sshd 的服务的信息