linux 进程管理
linux 进程管理
基本介绍
1.在linux中,每个执行的程序(代码)都称为一个进程。每一个进程都有一个唯一的ID号。
2.每一个进程都会对应一个父进程,这个父进程可以复制多个子进程。
3.每个进程都可能以两种方式存在:前台与后台。前台进程就是屏幕上可以操作的。
4.一般系统的服务都是以后台进程的方式存在,而且会常驻在系统中,直到关机才结束。
进程管理
查看系统执行的进程
ps
ps用来查看目前系统中,有哪些程序正在执行,以及他们执行的状况。
基本指令
ps [选项]
可选参数
-a 显示当前终端的所有进程信息
-u 以用户格式显示进程信息
-x 显示后台进程运行的参数
-e 显示所有进程
-f 全格式,显示父进程
案例
[ranan@hadoop102 ~]$ ps -aux
ps -aux | grep xx 可以根据CMD筛选,如终端bash
查看父进程
[ranan@hadoop102 ~]$ ps -ef
pstree
基本指令
pstree [选项] 以树状图的形式来查看进程信息
常用选项
-p 显示进程PID
-u 显示进程的所属用户
终止进程
基本语法
kill [选项] 进程号
killall 进程名 通过进程名杀死程序,支持通配符,在系统因负载过大而变得慢时很有用
常用选项
-9 表示强迫进程立即停止
案例1
踢掉非法登录的用户ranan
1.用root用户登录
2.ps -aux | grep sshd 查询进程,找到进程号2175
[root@hadoop102 ranan]# kill 2175
案例2
终止远程登录服务sshd
[root@hadoop102 ranan]# kill 1012
服务(service)管理
syetemclt就是service和chkconfig两个命令的整合
服务service本质就是进程,但是运行在后台的,通常会监听某个端口,等待其他程序的请求,如mysql、sshd等。因此又称守护进程。
service 服务名 start|stop|restart|reload|status
systemctl 服务名 start|stop|restart|reload|status
说明:
1.关闭或启动防火墙后,立即生效。
测试方法 windows下telnet ip 端口
来检测linux的某个端口是否在监听可访问。
2.这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
3.服务自启动或关闭永久生效,使用chkconfig
开机的流程: 开机->bios->/boot->init进程1->默认运行级别->运行级别对应的服务
服务可以在不同的运行级分别设置是否自动启动
任务 | 旧指令 | 新指令 |
---|---|---|
设置服务自启动 | chkconfig --level 3 httpd on | systemctl enable httpd.service |
设置服务不自启 | chkconfig --level 3 httpd off | systemctl disable httpd.service |
检查服务状态 | service httpd status | systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active) |
显示所有已启动的服务 | chkconfig --list | systemctl list-units --type=service 查看开启服务状态(包含不启动) |
启动某服务 | service httpd start | systemctl start httpd.service |
停止某服务 | service httpd stop | systemctl stop httpd.service |
重启某服务 | service httpd restart | t systemctl restart httpd.service |
监控服务
动态监控进程top
top与ps相似,都用来显示正在执行的进程。top和ps最大的不同是top在执行一段时间可以更新正在运行的进程。
基本语法
top [选项]
进入top后交互操作
选项说明
案例1.监视特定用户
1.输入top,按回车,查看执行的进程
2.输入u回车,再输入用户名
案例2.终止指定的进程
1.输入top,按回车,查看执行的进程
2.输入k回车,再输入要结束的进程ID号
查看系统网络情况netstat
基本语法
netstat [选项]
常用 netstat -anp
选项说明
-an 按一定顺序排列输出
-p 显示哪个进程在调用
案例1 查看系统所有的网络服务
[ranan@hadoop102 ~]$ netstat -anp
方案2 查看服务名为sshd的服务的信息
[ranan@hadoop102 ~]$ netstat -anp | grep sshd