Linux实操--进程管理与服务管理

进程管理

在Linux中,每隔执行的程序都称为一个进程,每个进程都分配一个id号(pid,进程号)。

进程一般有两种类型,前台与后台。

前台进程就是用户在屏幕上可以操作的。

后台进程则是实际在执行,但屏幕上看不到的进程,通常使用后台方式执行。

一般系统服务都是以后台进程的方式存在,而且都会常驻在系统中。直到系统关闭。

显示系统执行的进程

ps命令是用来查看系统中,有哪些正在执行的进程,以及他们执行的状况。可以不加任何参数。

ps -a  // 显示当前终端的所有进程信息
ps -u  // 以用户的格式显示进程信息 
ps -x  // 显示后台进程运行的参数

无标题

执行 ps -aux 后,显示如下

无标1题

ps指令详解

  • 指令ps -aux | grep xxx 可以查看具体某一个服务的进程,比如要查看sshd服务,可以执行
ps -aux | grep sshd
  • 指令说明:
    • System V展示风格
    • USER:用户名称
    • PID:进程号
    • %CPU:进程占用cpu的百分比
    • %MEM:进程占用物理内存的百分比
    • VSZ:进程占用虚拟内存大小(单位KB)
    • RSS:进程占用物理内存大小(单位KB)
    • TTY:终端名称,缩写
    • STAT:进程状态(S-睡眠;s-表示该进程是会话的先导进程;N-表示该进程拥有比普通进程的优先级更低,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等)
    • STARTED:进程的启动时间
    • TIME:进程使用cpu的总时间
    • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
// 以全格式显示当前所有进程,查看进程的父进程
ps -ef  // 以全格式显示当前所有进程
-e // 显示所有进程
-f  // 全格式

终止进程kill和killall

kill [选项] 【进程号】  // 通过进程号杀死进程
常用选项: -9 :强迫进程立即停止
killall 进程名称  // 通过进程名称杀死进程,其子进程也会被杀死,支持通配符,在系统负载过大而变得很慢时很有用
// 案例1:踢掉某个非法登录用户
kill 【进程号】
// 终止远程登录服务sshd,在适当的时候再次重启sshd服务
ps -aux | grep sshd  // 先查询sshd的进程号10748
kill 10748  
/bin/systemctl start sshd.service // 启动sshd服务
//终止多个gedit
killall gredit
//强制杀掉一个终端
kill -9 [进程号]

查看进程树pstree

pstree [选项]  // 更加直观的查看进程信息
常用选项:-p:显示进程的pid;  
		-u:显示进程的所属用户
// 案例1 树状显示进程的pid
pstree -p
// 树状显示进程的用户id
pstree -u

服务(service)管理

服务的本质就是进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,比如(MySQLld、sshd、防火墙等),因此又称为守护进程!

service管理指令

service 【服务名】 【start|stop|restart|reload|status】

在CentOS7.0后,很多服务不再使用service,而是systemctl

service指令管理的服务在/etc/init.d查看

ll /etc/init.d/

无标2题

怎么查看服务名?

  • 方式1:使用setup命令 ->选择【系统服务】 就可以看到全部的服务。

无3标题

  • 方式2: /etc/init.d 看到service指令管理的服务。

服务的运行级别(runlevel)

Linux有7种运行级别(常用的是级别3和5):

  1. 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  2. 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
  3. 运行级别2:多用户状态(没有NFS),不支持网络
  4. 运行级别3:完全的多用户状态(有NFS),无界面,登录后进入控制台命令行模式
  5. 运行级别4:系统未使用,保留
  6. 运行级别5:X11控制台,登录后进入图形GUI模式
  7. 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

开机流程如下:

无标4题

在centos7中,在/etc/inittab文件中。进行了简化,如下:

multi-user.target:analogous to runlevel 3

graphical.target:analogous to runlevel 5

查看当前默认运行级别指令:

systemctl get-default

设置默认运行级别指令:

systemctl set-default TARHET.target

chkconfig指令

chkconfig指令可以给服务的各个运行级别设置自启动 / 关闭

chkconfig指令管理的服务在/etc/init.d 查看

CentOS7.0之后,很多服务使用systemctl管理

chkconfig指令的基本语法:

chkconfig --list [| grep xxx] // 查看服务 
chkconfig 【服务名】 --list
chkconfig --level 5 【服务名】 on/off // 设置服务在运行级别5 自启动或关闭

chkconfig重新设置服务自启动/关闭后,需要重启系统。

systemctl管理指令

  • systemctl管理指令
systemctl [start|stop|restart|status] 【服务名】

systemctl指令管理的服务在/usr/lib/system 查看

  • systemctl设置服务的自启动状态
// 查看服务开机启动状态,grep 可以进行过滤
systemctl list-unit-files [| grep 服务名] 
// 设置服务开机启动
systemctl enable 【服务名】
// 关闭服务开机启动
systemctl disable [服务名]
// 查询某个服务是否是自启动
systemctl is-enabled [服务名]
// 查询防火墙服务当前状态
systemctl status firewalld
// 开启防火墙
systemctl start firewalld

关闭或者启动防火墙后立即生效

这种方式只是临时生效,当重启系统后,还是回归以前服务的设置

要想永久生效,要使用

systemctl 【enable/disable】 【服务名】

防火墙打开/关闭指定端口

在实际生产 环境中,往往需要设置防火墙打开或关闭指定端口,具体的指令如下:

// 打开端口
firewall-cmd --permanent --add-port=[端口号/协议]
// 关闭端口   
firewall-cmd --permanent --remove-port=[端口号/协议]
// 重新载入才能生效
firewall-cmd --reload
// 查询端口是否开放
firewall-cmd --query--port=[端口号/协议]
// 开放111端口
firewall-cmd --permanent --add-port=11/tcp
firewall-cmd --reload

动态监控进程top

top和ps命令很相似,都是用来显示正在执行的进程。top和ps最大的不同之处在于top在执行一段时间后可以更新正在运行的进程。

top 【选项】
常用选项有:
-d 秒数  // 指定top命令每隔几秒更新,默认是3秒
-i   // 使top不显示任何闲置或者僵死进程
-p   // 通过指定进程id来监控具体某个进程的状态
// 每隔5秒刷新进程状态
top -d 5
  • 动态监控进程的交互操作(执行top指令后,输入如下按键)

无标5题

输入top命令后,按回车键,查看执行的进程。

如何监控特定用户,比如监控tom用户?

输入top命令后,按回车键,然后输入’u‘,再输入用户名,然后按回车。

如何终止指定的进程?

输入top命令后,按回车键,然后输入’k‘,在输入要结束的进程id,然后按回车,然后输入信号量’9‘。

监控网络状态netstat

基本语法:netstat 【选项】
常用选项:-an   // 按一定顺序排列输出
		-p    // 显示哪个进程在调用
// 查看服务名为sshd的服务信息
netstat -anp | grep sshd
posted @ 2026-04-15 17:59  NE_STOP  阅读(24)  评论(0)    收藏  举报