热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux进程的查看和调度命令的操作,Linux进程作业的查看和杀死

一、引入进程1、内存划分为:用户空间和内核空间1、在用户空间里运行的进程,就是用户进程,所属的状态为用户态2、在内核空间里运行的进程&#x

一、引入进程

1、内存划分为:用户空间和内核空间

1、在用户空间里运行的进程,就是用户进程,所属的状态为用户态

2、在内核空间里运行的进程,就是系统进程,所属的状态为内核态

例:执行内核里的代码的时候,就是属于内核态。

Linux的kernel其实就是一个软件,比较核心而已。

内核作用:

1.对cpu进行调度管理

2.对内存进行管理

3.对进程进行管理

4.对文件系统进行管理

5.对其他的硬件管理

2、内核空间的进程可以访问用户空间,但是用户空间的进程不能访问内核空间。

bc8141857ce538257fa3eccf21d07772.png

0f2d81d75e6314b939706d15d00bd676.png

二、进程

process是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源(内存、CPU)分配和调度的一个独立单位。

1、进程控制块(PCB)

是系统感知进程存在的唯一凭证,是数据结构,占用内存空间。

2、进程上下文

1、上文:已执行过的进程指令和数据在相关寄存器和堆栈中的内容称为上文。

2、正文:正在执行的指令和数据在相关寄存器和堆栈中的内容。

3、下文:待执行的指令和数据在相关寄存器和堆栈中的内容。

进程上下文切换:

指多任务系统中,CPU的控制权由运行任务,转移到另外一个就绪任务时所发生的事件;当前运行任务转为就绪(或者挂起、删除)状态,另一个被选定的就绪任务成为当前任务。

3、线程

thread只能归属于一个进程并且它只能访问该进程所拥有的资源。当操作系统创建一个进程后,该进程会自动申请一个名为主线程或首要线程的线程。

简而言之:

1、一个程序至少有一个进程,一个进程至少有一个线程;

2、线程的划分尺度小于进程,使得多线程程序的并发性高;

3、进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

5b00c30839ed97416fa602779de81ca9.png

shell>echo $PPID //查看父进程ID2100shell>echo $$ //查看当前进程ID2102

三、ps命令

用于查看os进程信息。

1、ps命令查看这些数据

1、描述信息:pid 进程名 父子shell的家族关系等

2、控制信息:进程当前状态、进程优先级等

3、资源管理信息:占多少内存,打开了多少个文件等

4、cpu现场保护结构

注意:ps命令查看静态的进程统计信息。

2、常见ps命令

shell> ps aux 或 ps -elf

a:显示当前终端启动的进程

u:显示用户为主的进程信息

x:显示所有进程信息

-e:显示系统内的所有进程信息

-l:使用长格式显示进程信息

-f:使用完整的格式显示进程信息

[root@localhost ~]# ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

解析:

PID   进程的ID;

%CPU  进程占用的CPU百分比;

%MEM  占用内存的百分比;

COMMAND 命令的名称和参数

[root@localhost ~]# ps -elf

F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD

解析:

R 正在运行,在可中断队列中(就绪状态);

S 处于休眠状态,静止状态;

Z 僵尸进程不存在但暂时无法消除;

四、top命令

查看动态的进程排名信息。

1、命令行直接top命令

[root@localhost ~]# top

4404f6d42eb648ec1876a7554c9f700b.png

等待输入……

h获得帮助

1:显示各CPU情况

P:按%CPU排序

M:按%MEM排序

空格:马上刷新(默认3秒)

q:退出(默认的top会一直占用当前端口)

解析:load average: 0.06, 0.60, 0.48

表示系统负载,即任务队列的平均长度。

三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。(w和uptime也可以查看top的顶头信息)

2、top命令常接选项

[root@localhost ~]# top -d 1 -n 5 -p 1

-d 1    指定刷新间隔时间为1秒

-n 5    刷新次数

-p 1    显示指定PID为1的进程信息,如果要指定多个PID,用逗号分开

五、其他查看进程的命令

1、pstree命令:以树型结构显示各进程间的关系

shell> pstree

init─┬─abrtd

├─acpid

├─atd

├─auditd───{auditd}

├─automount───4*[{automount}]

├─certmonger

├─console-kit-dae───63*[{console-kit-da}]

├─crond

├─cupsd

├─dbus-daemon

├─hald─┬─hald-runner─┬─hald-addon-acpi

│ │ └─hald-addon-inpu

│ └─{hald}

├─irqbalance

├─login───bash

├─mcelog

├─5*[mingetty]

├─mysqld_safe───mysqld───28*[{mysqld}]

├─rpc.statd

├─rpcbind

├─rsyslogd───3*[{rsyslogd}]

├─2*[sendmail]

├─sshd─┬─sshd───bash───pstree

│ └─sshd───bash───mysql

├─udevd───2*[udevd]

├─vsftpd

├─xinetd

└─zabbix_agentd───5*[zabbix_agentd]

常接命令选项-p:列出进程的PID号

注意:使用{}的是进程的线程。

2、pgrep命令:根据特定条件查询进程PID信息

[root@localhost ~]# pgrep init1[root@localhost~]# pgrep -l init1init

[root@localhost~]# pgrep -l -u root -t pts/2

11567 bash

-l:列出进程的名称

-u:根据进程所属的用户名进行查找

-t:根据进程所在的终端进行查找

……比较少用,特殊情况下会用用。

六、进程的优先级

Linux内核的基本任务是调度进程,每个进程受两个参数影响其调度。

1、优先级(priority):内核控制动态变化

值越小越早被cpu执行,用户无法直接调整数值大小。

2、niceness:进程可被执行的优先级的修正数值(可以人工修改)

1、用nice命令开新的nice(新开启的进程),以新的nice来启动命令

nice-10 vi &  //设置nice值为10nice--10 vi &  //设置nice值为-10

2、用renice命令设置新nice(已经存在的进程)

renice10 15132  //设置nice值为10renice-10 15132  //设置nice值为-10

3、用top命令修改进程的优先级

先输入r,然后输入pid,最后输入优先级

七、作业控制机制

前台启动:用户输入命令,直接执行程序

后台启动:在命令行尾加入“&”符号,让进程切入后台执行

bg命令:将后台停止的进程,在后台重新运行

[root@localhost lianxi]# jobs  //查看后台作业信息[1]+Stopped vim num.txt

[2]- Killed cp -i -r /mnt/*/tmp

+ :最新放到后台的进程

- :仅次于最新放到后台的进程

[root@localhost lianxi]# fg  //将后台的进程调到前台fg将处于后台的进程恢复到前台运行,需指定作业号,不指定作业号,将恢复有“+”标记的进程。

a47bb6e36efb61ba60951bbd31baf6f7.png

八、kill命令

kill命令的实现是基于OS的“信号机制”。信号机制除了基本通知功能外,还可以传递附加信息。详解参考:http://www.cnblogs.com/geaozhang/p/6874310.html

shell> kill –l  #列出linux系统支持的信号种类

格式:

kill –信号代码 PID

原理:kill命令用来发送信号(软中断信号),进程收到信号后采取的行动:终止、忽略、挂起

dcf242949c945ad40d3ba429c2339c09.png

1、kill和killall的区别:

kill    后面写进程ID,不能写进程名

killall 后面写进程名,不能写进程ID,会将相同名字的进程一起杀死

2、pkill命令:根据“特定条件”终止相应的进程

-u:根据进程所属的用户名终止相应进程

-t:根据进程所在的终端终止相应进程

shell> pkill mysqld  #强行终止mysqld服务进程



推荐阅读
  • 环境变量是用于描述系统运行环境的一系列变量,如PATH指定了命令的搜索路径,SHELL指定了默认的Shell。本文介绍了如何加载和管理这些环境变量,以及普通变量与环境变量的区别。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 尽管Medium是一个优秀的发布平台,但在其之外拥有自己的博客仍然非常重要。这不仅提供了另一个与读者互动的渠道,还能确保您的内容安全。本文将介绍如何使用Bash脚本将Medium文章迁移到个人博客。 ... [详细]
  • 如何在Win10中将CMD命令行添加到右键菜单
    本文介绍了如何通过注册表编辑器将CMD命令行添加到Windows 10的右键菜单中,以便快速访问命令行界面。 ... [详细]
  • Linux中tput命令怎么用
    这篇文章主要介绍Linux中tput命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux常用命令tput命令将通过ter ... [详细]
  • 本文介绍了 Linux 系统中用于定期执行任务的 cron 服务及其配置方法。通过 crond 和 crontab 命令,用户可以轻松地安排系统和用户级别的周期性任务。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文介绍了如何在Linux系统中将命令添加到PATH环境变量中,以便在任何位置都能直接运行这些命令。PATH是一个包含多个目录路径的字符串变量,当输入不带路径的命令时,系统会在这些路径中查找并执行相应的命令。 ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 本文介绍了编程语言的基本分类,包括机器语言、汇编语言和高级语言的特点及其优缺点。随后详细讲解了Python解释器的安装与配置方法,并探讨了Python变量的定义、使用及内存管理机制。 ... [详细]
  • Linux 数据流重定向详解
    本文详细介绍了 Linux 系统中的数据流重定向技术,包括标准输出(stdout)、标准错误输出(stderr)和标准输入(stdin)的重定向方法,以及其在实际应用中的具体示例。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • Crontab 是 Linux 系统中用于设置定时任务的强大工具。为了高效地管理和使用 Crontab,首先需要编写相应的 Shell 脚本来定义具体的任务逻辑。此外,还需要对 Crontab 进行适当的配置,以确保任务能够按时准确地执行。本文将详细介绍如何编写和管理 Crontab 定时任务,包括常见的配置选项和最佳实践,帮助用户提高任务调度的效率和可靠性。 ... [详细]
author-avatar
悲剧制造商_469
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有