Linux进程管理

一、 Linux中的进程和服务 

计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
启动之后一直存在、常驻内存的进程,一般被称作“服务”(service)。

二、 service服务管理(CentOS6版本-了解) 

1) 基本语法 

service 服务名  操作命令
service 服务名 start | stop | restart | status
 

2) 经验技巧 

查看服务的方法:/etc/init.d/服务名 ,发现只有两个服务保留在 service

3) 案例实操 

(1) 查看网络服务的状态
[root@hadoop100 桌面]#service network status 
(2) 停止网络服务
[root@hadoop100 桌面]#service network stop 
(3) 启动网络服务
[root@hadoop100 桌面]#service network start 
(4) 重启网络服务
[root@hadoop100 桌面]#service network restart

三、 chkconfig设置后台服务的自启配置(CentOS6版本)

1) 基本语法 

chkconfig (功能描述:查看所有服务器自启配置) 
chkconfig [--level 运行级别] 服务名 off (功能描述:关掉指定服务的自动启动) 
chkconfig [--level 运行级别] 服务名 on (功能描述:开启指定服务的自动启动)

Linux运行级别

0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。
1:单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。
2:多用户状态,没有NFS支持。
NFS是一种基于TCP/IP传输的网络文件系统协议,最初由sun公司开发,通过NFS协议。客户机可以向
访问本地目录一样访问远程NFS服务器中的共享资源。
3:完整的多用户模式,有NFS,登陆后进入控制台命令行模式。
4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用
尽时,可以切换到这个模式来做一些设置。
5:登陆后进入图形GUI模式,XWindow系统。
6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启。
标准的Linux运行级别为3或5,如果是3的话,系统就在多用户状态;如果是5的话,则是运行着X 
Window系统。

ntsysv 服务界面 控制自启动    针对级别  2345

 2) 案例实操 

(功能描述:查看服务开机启动状态)
(1)

开启/关闭 network(网络)服务的自动启动

(2) 开启/关闭 network 服务指定级别的自动启动

四、 systemctl(CentOS7版本-重点掌握)

1) 基本语法

systemctl  [命令] [服务名]


start:立刻启动后面接的服务名。
stop:立刻关闭后面接的服务名。
restart:立刻关闭后启动后面接的 服务名,亦即执行 stop 再 start 的意思。
reload:不关闭 服务名的情况下,重新载入配置文件,让设置生效。
enable:设置下次开机时,后面接的 服务名会被启动。
disable:设置下次开机时,后面接的 服务名不会被启动。
status:目前后面接的这个 服务名的状态,会列出有没有正在执行、开机时是否启动等信息。

2) 经验技巧

查看服务的方法:/usr/lib/systemd/system 3)

案例实操 

(1) 查看防火墙服务的状态
[root@hadoop100 桌面]# systemctl status firewalld
(2) 停止防火墙服务
[root@hadoop100 桌面]# systemctl stop firewalld
(3) 启动防火墙服务
[root@hadoop100 桌面]# systemctl start firewalld
(4) 重启防火墙服务
[root@hadoop100 桌面]# systemctl restart firewalld

五、 systemctl设置后台服务的自启配置 

1) 基本语法 

systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)

2) 案例实操


六、 防火墙 

1) 临时关闭防火墙 

(1) 查看防火墙状态
[root@hadoop100 桌面]# systemctl status firewalld 
(2) 临时关闭防火墙
[root@hadoop100 桌面]# systemctl stop firewalld 

2) 开机启动/关闭防火墙 

(1) 查看防火墙开机启动
[root@hadoop100 桌面]# systemctl enable firewalld.service 
(2) 设置开机时关闭防火墙
[root@hadoop100 桌面]# systemctl disable firewalld.service 

3)查看防火墙开放端口 

firewall-cmd    --list-ports

4)开放端口(开放后需要重启或重载防火墙才生效) 

firewall-cmd --zone=public --add-port=80/tcp --permanent 
firewall-cmd --zone=public --add-port=8888/tcp --permanent

5)关闭端口(关闭后需要重启防火墙才生效) 

firewall-cmd --zone=public --remove-port=80/tcp --permanent 
firewall-cmd --zone=public --remove-port=8080/tcp --permanent

6)重载端口(防火墙重新加载配置) 

firewall-cmd --reload

七、 系统运行级别 

1) Linux运行级别[CentOS6],如图所示

2) CentOS7 的运行级别简化为: 

Linux进程运行级别
multi-user.target 等价于原运行级别 3(多用户有网,无图形界面) 
graphical.target 等价于原运行级别 5(多用户有网,有图形界面)

3) 查看当前运行级别: 

systemctl get-default
 

4) 修改当前运行级别 

systemctl set-default TARGET.target (这里 TARGET 取 multi-user 或者 graphical)


八、进程管理 

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

1、 ps 查看当前系统进程状态 

ps:process status 进程状态

1) 基本语法 

ps -aux
(功能描述:查看系统中所有进程)
ps -ef  
(功能描述:可以查看父子进程之间的关系)

2) 选项说明

3) 功能说明 


(1) ps -aux 显示信息说明

ps -u和ps u的结果没有区别,都是显示当前用户下的进程。 
只是ps -u后可以指定用户名,例如ps -u xxx,可以查看其他用户的进程;ps u 后则不能加用户名。

USER:该进程是由哪个用户产生的

PID:进程的 ID 号

%CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;

%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源; 

VSZ:该进程占用虚拟内存的大小,单位 KB;

RSS:该进程占用实际物理内存的大小,单位 KB;

TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端,

tty1-tty6 是本机上面的登入者程序,tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。

STAT:进程状态。常见的状态有:

START:该进程的启动时间

TIME:该进程占用 CPU 的运算时间,注意不是系统时间

COMMAND:产生此进程的命令名

(2) ps -ef 显示信息说明

UID: 用 户 ID 

PID: 进 程 ID 

PPID:父进程 ID

C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算, 执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高

STIME:进程启动的时间

TTY:完整的终端名称TIME:CPU 时间

CMD:启动进程所用的命令和参数

4) 经验技巧 

如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;
如果想查看进程的父进程 ID 可以使用 ef;

5) 案例实操 

[root@hadoop101 datas]# ps -aux 
查看进程的 CPU 占用率和内存占用率

[root@hadoop101 datas]# ps -ef 
查看进程的父进程 ID

 2,kill 终止进程 

1)基本语法 

kill [选项] 进程号 (功能描述:通过进程号杀死进程)

killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

2) 选项说明

3) 案例实操 

(1) 杀死浏览器进程
[root@hadoop101 桌面]# kill -9 5102 

(2) 通过进程名称杀死进程
[root@hadoop101 桌面]# killall firefox 

ctrl+c 和 ctrl+z都是中断命令,但是他们的作用却不一样.

ctrl+c强制中断程序 
ctrl+z的是将任务中断,挂起的状态, 
ctrl+c是强制中断程序的执行,而ctrl+z的是将任务中断. 
但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态 

3、 pstree 查看进程树 

1) 基本语法 

pstree [选项]

 2) 选项说明

3) 案例实操 

(1) 显示进程 pid
 [root@hadoop101 datas]# pstree -p 
(2) 显示进程所属用户
[root@hadoop101 datas]# pstree -u 

4、 top 实时监控系统进程状态 

1) 基本命令 

top [选项]

 2) 选项说明

3) 操作说明

4) 查询结果字段解释 

第一行信息为任务队列信息

第二行为进程信息

第三行为 CPU 信息

第四行为物理内存信息

第五行为交换分区(swap)信息

 5)实例操作

执行上述命令后,可以按 P、M、N 对查询出的进程结果进行排序。

5、Linux常见服务


九、工作管理 

&把进程放入后台 

命令后面加& 
例子:
tar -zcf etc.tar.gz /etc & (后台运行) 
但是像top,vim和用户交互的命令放在后台自动停止,不再运行 
运行界面按ctrl+z 

例子:

top
在top命令执行的过程中,按ctrl+z快捷键放入后台(后台暂停) 
查看后台的工作

jobs [-l]

-l(小写L) 显示工作的PID 
注意:“+”号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。“-”号代表倒数第二个放
入后台的工作

fg %工作号 

将后台暂停的工作恢复到前台执行
%工作号:%号可以省略,但是注意工作号和PID到区别 
恢复执行暂停的工作

bg %工作号 

注意:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行


十、系统资源 

vmstat 命令监控系统资源

 vmstat主要是用来检测虚拟内存的,可以展现给定时间间隔的服务器的状态值,包括CPU使用率,内存使用率,虚拟内存交换情况,IO读写情况等。一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数

vmstat各个参数的含义 

procs 
r:运行队列中进程的数量,这些进程都是可运行状态,都在等待CPU的分配
      解释:当这个值超过了CPU数目,就会出现CPU瓶颈,如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高

b:被blocked(阻塞)的进程数,正在等待IO

memory
swpd:使用的虚拟内存的大小,单位是KB
       解释:如果该值大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器

free:可用的物理内存大小,单位是KB

buff:物理内存用来缓存读写操作的buffer大小,单位是KB

cache:物理内存用来缓存进程地址空间的cache大小,单位是KB

swap

si(换入):每秒从SWAP(交换分区)读入到RAM(swap in)的大小,单位是KB
so(换出):每秒从RAM写出到SWAP(swap out)的大小,单位是KB
         解释:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响。有些朋友看到空闲内存(free)很少时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响。

io

bi:每秒从文件系统或SWAP读入到RAM(blocks in)的块数,block(1KB磁盘块)为单位
bo:每秒从RAM写出到文件系统或SWAP(blocks out)的块数,block(1KB磁盘块)为单位
      解释:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

system
in:每秒的中断数
cs:系统每秒进行上下文切换的次数
      解释:cs表示每秒上下文切换的次数,例如,当我们调用系统函数,就要进行上下文切换;当进行线程的切换,也要进行上下文切换,这个值越小越好。例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程或线程数就是比较合适的值了。系统调用也是如此,每次调用系统函数,我们的代码就会进入到内核空间(内核态),导致上下文切换,这个过程很耗资源,所以要尽量避免频繁的系统调用。上下文切换次数过多表示你的CPU大部分时间浪费在上下文切换中,导致CPU干正经事的时间少了。

cpu
us:用户空间占用CPU的百分比
     解释:us的值比较高时,说明用户进程消耗的CPU时间比较多,但是如果长期超过50%,那么我们就该考虑优化程序算法或者进行加速。

sy:内核空间占用CPU的百分比
      解释:sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

id:CPU空闲的百分比
wa:CPU等待IO的百分比
       解释:wa的值高时,说明CPU等待IO的时间比较多,这可能是大量的磁盘随机访问造成的,也有可能是磁盘出现瓶颈。

st:来自于虚拟机偷取的CPU所占的百分比

vmstat是一个服务器监控命令,通过vmstat可以看到CPU和内存的使用情况。目前说来,对于服务器监
控有用处的度量主要有:

dmesg开机时内核检测信息

Linux dmesg命令用于显示开机信息。

会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦 保存在/var/log目录中,名称为dmesg的文件里。

free命令查看内存使用状态

free命令可以显示当前系统未使用的和已使用的内存量,还可以显示被内核使用的内存缓冲区。


1. 基本语法
free [选项]
展示的信息:
total:表示 总计物理内存的大小。
used:表示 已使用多少。
free:表示 可用内存多少。
Shared:表示多个进程共享的内存总额。
Buffers/cached:表示 磁盘缓存的大小。

2. 选项

缓存和缓冲的区别

简单来说缓存(cache)是用来加速数据 从硬盘中“读取”的,而缓冲(buffer) 是用来加速数据“写 入”硬盘的。

查看cpu信息

cat /proc/cpuinfo

uptime命令

uptime

显示系统的启动时间和平均负载,也就是top命令第一行

查看系统与内核相关信息

uname [选项]

判断当前系统的位数

没有直接命令看可以查看

可以通过查看系统外部命令的文件类型,顺带显示出位数

file /bin/ls

十一、定时任务

1、crontab服务

2、crontab定时任务设置

1. 基本语法

crontab [选项]

2. 选项说明

3. 参数说明

1. 进入crontab编辑界面。会打开vim编辑你的工作。

2. 特殊符号

3. 特定时间执行命令

4. 案例实操
每隔1分钟,向/root/file1.txt文件中添加一个11的数字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值