Linux系统进程及服务控制

一、什么是进程

进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。

二、查看进程

查看方式:a. 图形查看方式  b. 进程查看方式

1. 图形查看进程,使用命令:gnome-system-monitor

然后会弹出一个查看命令的可视化的窗口:

2. 命令查看进程,使用命令:ps

a. 查看所有进程:ps -A

b. 在当前环境中运行的进程,不包含环境信息:ps -a

c. 显示进程用户信息:ps -u

d. 在当前环境中运行的进程:ps a

e. 列出系统中所有运行包含tty(字符)设备的进程:ps x

f. 显示父子进程关系:ps f

g. 现实进程的详细信息(系统的资源调用):ps e

3. 常用ps命令的组合

a. 显示系统中所有进程并显示进程用户:ps aux

b. 显示进程详细信息并显示进程父子关系:ps ef

c. 显示当前系统中的所有进程:ps ax

4. 显示进程指定信息:ps -o xxx

其中xxx可为:comm, user, group, %cpu, %mem, pid, nice, ......

a. 指定显示进程名称

b. 指定进程用户

c. 指定进程属组

d. 指定进程cpu使用率

e. 指定进程内存使用率

f. 指定进程id

g. 指定进程优先级

注:其中,nice指的范围为:-20~19,数值越低,优先级越高

5. 进程排序:ps --sort=[+|-]<%cpu|%mem|nice|...>  注:等号两边不能有空格

例如:进程按cpu使用率降序排序:ps -ax --sort=-%cpu

发现所列信息无法显示进程的具体cpu使用率,可用 -o 命令,指定进程显示的具体信息

例如:ps ax --sort=-%cpu -o comm,pid,%cpu | head -n 6 | grep -v %CPU

按进程的cpu使用率降序排序,显示进程的命令名称,进程号和cpu使用率,同时显示前六行,因为第一行为表头,用grep -v 反向抓取带有CPU关键字的行并剔除,最终显示了前五行不带表头的数据

6. 进程状态

在显示进程的详细信息时,其中有一列数据为 STAT ,表示进程的状态

其中, S   ##进程状态
              l    ##内存中有锁定空间
            N    ##优先级低(nice为正值时)
            <    ##优先级高(nice为负值时)
            +    ##前台运行
            s    ##顶级进程

三、进程优先级

优先级有两种表示方式:nice (数值显示),Priority(单词描述,Normal(数值为0),Very Low(数值为正),Very High(数值为负))
1.nice进程优先级范围

-20~19,数值越小,优先级越高

2.优先级查看

ps ax -o pid, nice, comm

3. 指定某个优先级开启进程

nice -n 优先级数字  进程名称
例如:nice -n -5  vim &    ##开启vim并指定优先级为-5,其中 & 表示进程在后台开启,不占用终端

4.改变进程优先级

renice -n 优先级数字  进程pid
renice -n -5 1234    ##改变1234进程的优先级为-5

注:与nice命令不同,renice改变进程优先级必须是已有进程,而nice命令是先指定一个优先级,再开启一个新的进程

四、环境中进程的前后台调用

进程前台运行时,会占用终端,此时无法输入命令,除非进程结束或转入后台

1. 查看被打入环境后台的进程:jobs

2. 查看被打入环境后台的进程:ctrl+z

3. 把后台进程调回前台:fg jobnum      #jobnum为后台进程号

4. 把后台暂停的进程运行:bg jobnum

5. 让命令直接在后台运行:comm &

注:fg    ##把后台进程调回前台
    
        ##不加参数时,默认调回带 + 号的进程,然后是带 - 号的进程

五、进程信号
1. 常用信号等级
    
    1    ##进程重新加载配置

在配置或服务更改后使用,可以使得更改后的内容生效(同时并没有关闭服务)

类似于,systemclt reload 服务
    2    ##删除进程在内存中的数据

在gedit中输入字符,此时gedit在内从中有锁定空间

使用kill -2 可以使得gedit在内存中的数据删除


    3    ##删除鼠标在内存中的数据


    9    ##强行结束单个进程(不可被阻塞)

可以强行删除其他shell,不可被阻塞
    15    ##正常关闭进程(可能会被阻塞)

kill -15 只能关闭普通进程,无法关闭其他shell
    18    ##运行暂停的进程(但依然在后台运行,在后台运行暂停的vim进程,依然还是暂停,因为vim命令无法在后台运行)


    19    ##暂停某个进程(不能被阻塞)


    20    ##把进程打入后台(可以被阻塞)

    kill    -信号    进程id


    killall    -信号    进程名

对相同命令的多个进程进行操作


    pkill    -u  student  -信号

可以对不同用户的命令进行操作

六、进程的动态监控
1. top

    1    ##显示cpu每个核的负载
    s    ##调整刷新频率

将刷新频率调整到0.1s


    c    ##cpu负载排序
    m    ##内存使用量排序
    h    ##查看帮助
    u    ##查看指定用户进程

指定查看root用户的进程


    k    ##对指定进程发起信号
    q    ##退出

七、控制服务
1.什么是服务

Linux中的服务是一类常驻在内存中的进程,这类进程启动后就在后台当中一直持续不断的运行,因为这类进程通常是负责一些系统提供的功能来服务用户的各 项任务,所以这类进程被称为服务,比如crond、atd、syslog、Apache都是属于服务,服务叫做daemon(半神)进程,从它的英文含义上也可以看出这类进程的特点。

注:服务开启对本机无意义,对客户有意义

2.用什么控制服务

systemd即为system daemon,是linux下的一种init软件

系统初始化进程可以对服务进行相应的控制

3.当前系统初始化进程是什么
        pstree  #查看进程树

根节点进程即为系统初始化进程:systemd

4.进程控制命令

对于客户端来说ssh是一个命令

对于服务端来说sshd是一种服务

    ssh ---->  sshd
    client       server

    systemctl        ##服务控制命令   可以用来查看当前服务


    systemctl  status  sshd    ##查看服务状态,active(活跃),inactive(非活跃)


    systemctl  start   sshd    ##开启服务
    systemctl  stop       sshd    ##关闭服务


    systemctl  restart sshd    ##重启服务,关闭服务再开启
    systemctl  reload  sshd    ##重新加载服务,不关闭服务,热加载
    systemctl  enable  sshd    ##设定开机自动启动


    systemctl  disable sshd    ##设定开机不启动


     systemctl  list-units    ##列出已经开启服务当前状态


    systemctl list-unit-files ##列出所有服务的开机启动状态(enable,disable,static(需要其他依赖))

  • enabled:已建立启动链接
  • disabled:没建立启动链接
  • static:该配置文件没有[Install]部分(无法执行),只能作为其他配置文件的依赖
  • masked:该配置文件被禁止建立启动链接


    systemctl list-dependencies ##列出服务的依赖性


    systemctl set-default multi-user.target ##设定系统启动级别为多用户模式(无图模式)


    systemctl set-default graphical.target ##设定系统启动级别为图形模式


 

 
      

猜你喜欢

转载自blog.csdn.net/weixin_43369306/article/details/83654693