详解Linux进程及作业管理

一、进程查看及其管理工具

ps命令:报告当前进程的快照信息


  1. ps - report a snapshot of the current processes. 

选项:

-A:显示所有进程与-e相同的效果

-a:不与终端相关的所有进程

-u:与用户相关的进程

-x:通常和a,u结合使用,显示出来比较全面的信息

-f:做一个更为完整的输出

常用的组合:

ps -ef 以完整的信息显示所有进程信息

ps -efH 显示进程层次结构

ps -aux 显示所有不与终端和与终端相关的进程完整信息

ps -axo pid,command,psr,pri,ni 自定义显示其进程号、进程命令、优先级、nice值

命令演示:

UID/PID/PPID:表示发起者、进程号、父进程号

C:代表CPU,单位为百分比

STIME:表示进程启动时间

TTY:登录者的终端位置

TIME:cpu的运行时间

CMD:处罚进程命令

命令演示: 

USER:进程的发起者 PID:进程号 %CPU:cpu的占用率

%MEM:内存的占用率 VSZ:虚拟内存集 RSS:物理内存集

TTY:终端位置 STAT:进程状态信息 START:被触发的时间

TIME:cpu的使用时间 COMMAND:触发进程命令

………………………………………………………………………………………………………………………

注:STAT的常见状态:

R:running,运行状态

S:interruptible sleeping,可终端休眠

D:uninterruptible sleeping,不可终端休眠

T:stop,停止状态

Z:zombie,僵持状态

top命令:

top - display Linux tasks:动态显示linux进程信息

  


  1. top - 17:24:30 up 2 days, 9:45, 3 users, load average: 0.00, 0.01, 0.05 

top 当前系统时间 系统启动到现在时间总长 用户数 平均负载


  1. Tasks: 364 total, 2 running, 361 sleeping, 1 stopped, 0 zombie 

显示进程总量与个别程序处在什么样的状态:运行 可中断 不可中断 僵持状态、僵死状态


  1. %Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 

………………………………………………………………………………………………………………………

显示CPU的整体负载,具体如下:

us:user space 用于使用空间

sy:system space 内核占用cpu百分比

ni:nice用户进程空间所改变过优先级的进程占用cpu的百分比

id:idle空闲cpu百分比

wa:wait i/0 等待i/o花费时间

hi:hardware interrupt

si:software interrupt

st:stolen,被虚拟内存偷走的百分比

KiB Mem : 1001332 total, 139212 free, 207732 used, 654388 buff/cache

物理内存占用使用情况

KiB Swap: 2098172 total, 2097620 free, 552 used. 531424 avail Mem

交换分区的使用情况

上面一行通常为空,只要在输入命令时才显示,在这可输入的命令有如下:

P:以占据的cpu的百分比大小进程排序

M:以占据的memory大小进行排序

T:以cpu的运行时长进行排序

l:显示系统负载行

t:是否显示系统进程摘要信息及其cpu的负载状态

1:平均或单独显示cpu的负载状态

m:是否显示内存相关的状态信息

q:退出命令

s:修改延长刷新时间

k:终止指定进程

………………………………………………………………………………………………………………………

top字段详解:

  

PID:进程号

USER:进程发起者

PR:进程的优先级,越小越优先

NI:nice值,与priortity有关,越小越早被运行

VIRT:虚拟内存集 进程占虚拟内存空间

RES:物理内存集 进程占实际内存空间

SHR:进程与其他进程共享的内存大小

S:进程的状态信息

%CPU:cpu的使用百分比

%MEM:内存的使用百分比

TIME+:cpu的使用时间的总时长

COMMAND:进程相关命令

htop命令:内部进程查看器


  1. htop - interactive process viewer 

u:显示指定用户的进程

l:显示光标所在进程所打开的文件列表

s:显示光标所在进程执行的系统调用

a:绑定进程到指定的cpu

#:快速定位光标之pid为#号的进程上

htop支持的选项:

-d:延长时长

-u USERNAME:仅显示指定用户的进程

-s COLUMN:根据指定的字段进行排序

二、Linux进程及作业管理

1、进程管理

所谓的进程管理就是向进程发送一些控制信号,来完成对进程的管理控制,可通过kill命令来显示当前系统可用的信号,以及向进程发送信号指定。

kill -l:显示当前系统可用的信号

 

kill命令:

用于向进程发送信号,以实现对进程的管理


  1. kill - terminate a process 

每个信号的标识方式有三种:

1)信号的数字标识

2)信号的完整名称

3)信号的简写名称

向进程发信号:

kill [-s signal|-p] [--] pid...

kill -l [signal]

常见的信号有:

1)SIGHUB #无需关闭进程让其重读配置文件 kill -1 pid

2)SIGINT #终止正在运行的指令 相当于ctrl+c kill -2 pid

9)SIGKILL #强暴的杀死正在运行的进程 kill -9 pid

15)SIGNTERM#安全终止运行中的进程 kill -15 pid

19)SIGSTOP #停止进程

killall命令:killall命令后面接进程名


  1. killall - kill processes by name 

2、作业管理

在每个用户登录系统之后每个工作进程都是当前bash的子进程,此时我们需要对那些进行管理,即将一部分作业放入后台运行,,同时在前台编辑一个配置文件,在编辑完配置文件后再将后台的作业任务调回前台运行。

如何将作业运行在后台:

1)ctrl+z

2)command &

作业控制命令:fg bg kill

作业控制命令:

# fg [[%]JOBNUM]: 将指定的作业调回前台

# bg [[%]JOBNUM]: 让送往后台的作业在后台继续运行

# kill[%JOBNUM]: 终止指定的作

作者:马哥教育

来源:51CTO

时间: 2024-10-30 09:32:17

详解Linux进程及作业管理的相关文章

Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)【转】

转自:http://blog.csdn.net/gatieme/article/details/51872659 版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme   目录(?)[-] 前景回顾 1 Linux的调度器组成 2 调度工作 进程上下文 1 进程上下文的概念 2 上下文切换 context_switch进程上下文切换 1 context_switch完全注释 2 prepare_arch_switch切换前的准备工

Linux的命名空间详解--Linux进程的管理与调度(二)

命名空间概念 传统上,在Linux以及其他衍生的UNIX变体中,许多资源是全局管理的. 例如,系统中的所有进程按照惯例是通过PID标识的,这意味着内核必须管理一个全局的PID列表.而且,所有调用者通过uname系统调用返回的系统相关信息(包括系统名称和有关内核的一些信息)都是相同的.用户ID的管理方式类似,即各个用户是通过一个全局唯一的UID号标识. 全局ID使得内核可以有选择地允许或拒绝某些特权.虽然UID为0的root用户基本上允许做任何事,但其他用户ID则会受到限制.例如UID为n 的用户

Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)

进程状态 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ 1 1 state成员的可能取值如下 参见http://lxr.free-electrons.com/source/include/linux/sched.h?v=4.5#L207 /* * Task state bitmask. NOTE! These bits are also * encoded in fs/proc/array.c: get_task

详解Linux系统中md5sum命令的用法

  这篇文章主要介绍了详解Linux系统中md5sum命令的用法,用来处理MD5验证的相关操作,需要的朋友可以参考下 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的"指纹"(或称"报文摘要"),不同的文件产生相 同的报文摘要的可能性是非常非常之小的. 在linux或Unix上,

详解Linux与Unix系统的区别与联系

详解Linux与Unix系统的区别与联系 区别和联系 Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件.这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应:这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型. Linux 的源头要追溯到最古老的UNIX.1969年,Bell实验室的Ken Thompson开始利用一

详解linux中的信号

SIGHUP 终止进程 终端线路挂断 SIGINT 终止进程 中断进程 SIGQUIT 建立CORE文件终止进程,并且生成core文件 SIGILL 建立CORE文件 非法指令 SIGTRAP 建立CORE文件 跟踪自陷 SIGBUS 建立CORE文件 总线错误 SIGSEGV 建立CORE文件 段非法错误 SIGFPE 建立CORE文件 浮点异常 SIGIOT 建立CORE文件 执行I/O自陷 SIGKILL 终止进程 杀死进程 SIGPIPE 终止进程 向一个没有读进程的管道写数据 SIGA

详解Linux系统中的root权限控制

  在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者.普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户. 在系统中,每个文件.目录和进程,都归属于某一个用户,没有用户许可其它普通用户是无法操作的,但对root除外.root用户的特权性还表现在root 可以超越任何用户和用户组来对文件或目录进行读取.修改或删除(在系统正常的许可范围内);对可执行程序的执行.终止;对硬件设备的添加.创建和移除等; 也可以对文件和目录进行属主和权限进行修改,以适合系统管

详解Android进程和线程_Android

写在前面的话 一个Android应用就是一个Linux进程,每个应用在各自的进程中运行,互不干扰,比较安全. 一个应用对应一个主线程,就是通常所说的UI线程,android遵守的就是单线程模型,所以说Ui操作不是线程安全的并且这些操作必须在UI线程中执行. 本文是对官方文档的翻译,原文链接:https://developer.android.com/guide/components/processes-and-threads.html 概述 当某个应用组件启动且该应用没有运行其他任何组件时,An

详解Linux的SOCKET编程_C 语言

本篇文章对Linux的SOCKET编程进行了详细解释文章后面分享了一个编程实例供大家学习. 1. 网络中进程之间如何通信 进程通信的概念最初来源于单机系统.由于每个进程都在自己的地址范围内运行为保证两个相互通信的进程之间既互不干扰又协调一致工作操作系统为进程通信提供了相应设施如 UNIX BSD有管道pipe.命名管道named pipe软中断信号signal UNIX system V有消息message.共享存储区shared memory和信号量semaphore)等. 他们都仅限于用在本