当前位置:文档之家› Linux下查看进程和线程

Linux下查看进程和线程

Linux下查看进程和线程
Linux下查看进程和线程

在Linux中查看线程数的三种方法

1、top -H

手册中说:-H : Threads toggle

加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。

2、ps xH

手册中说:H Show threads as if they were processes

这样可以查看所有存在的线程。

3、ps -mp

手册中说:m Show threads after processes

这样可以查看一个进程起的线程数。

查看进程

1. top 命令

top命令查看系统的资源状况

load average表示在过去的一段时间内有多少个进程企图独占CPU

zombie 进程:不是异常情况。一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而已不必害怕。如果程序有问题有机会遇见,解决大批量僵尸简单有效的办法是重起。kill是无任何效果的stop模式:与sleep进程应区别,sleep会主动放弃cpu,而stop 是被动放弃cpu ,例单步跟踪,stop(暂停)的进程是无法自己回到运行状态的。

cpu states:

nice:让出百分比irq:中断处理占用

idle:空间占用百分比iowait:输入输出等待(如果它很大说明外存有瓶颈,需要升级硬盘(SCSI))

Mem:内存情况

设计思想:把资源省下来不用便是浪费,如添加内存后free值会不变,buff值会增大。判断物理内存够不够,看交换分区的使用状态。

交互命令:

[Space]立即刷新显示

[h]显示帮助屏幕

[k] 杀死某进程。你会被提示输入进程ID 以及要发送给它的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。

[n] 改变显示的进程数量。你会被提示输入数量。

[u] 按用户排序。

[M] 按内存用量排序。

[o][O] 改变显示项目的顺序。

[P] 根据CPU使用百分比大小进行排序。

[T] 根据时间/累计时间进行排序。

[Ctrl+L] 擦除并且重写屏幕。

[q] 退出程序。

[r] 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。

[S] 切换到累计模式。

[s] 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

缩写含义:

PID每个进程的ID

USER进程所有者的用户名

PRI每个进程的优先级别

NI每个优先级的值

SIZE 进程的代码大小加上数据大小再加上堆栈空间大小的总数,单位是KB RSS 进程占用的物理内存的总数量,单位是KB

SHARE进程使用共享内存的数量

STAT 进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z 代表僵死状态;T代表停止或跟踪状态

%CPU进程自最近一次刷新以来所占用的CPU时间和总时间的百分比

%MEM进程占用的物理内存占总内存的百分比

TIME进程自启动以来所占用的总CPU时间

CPU CPU标识

COMMAND进程的命令名称

2. ps命令

ps查看当前用户的活动进程,如果加上参数可以显示更多的信息,如-a,显示所有用户的进程

ps ax :tty值为“?”是守护进程,叫deamon 无终端,大多系统服务是此进程,内核态进程是看不到的

ps axf :看进程树,以树形方式现实进程列表敲,init是1号进程,系统所有进程都是它派生的,杀不掉

ps axm :会把线程列出来。在linux下进程和线程是统一的,是轻量级进程的两种方式。

ps axu :显示进程的详细状态。

vsz:说此进程一共占用了多大物理内存。

rss:请求常驻内存多少

查看线程

其实linux没有线程,都是用进程模仿的

1. ps -ef f

用树形显示进程和线程,比如说我想找到proftp现在有多少个进程/线程,可以用

$ ps -ef f | grep proftpd

nobody 23117 1 0 Dec23 ? S 0:00 proftpd: (accepting connections)

jack 23121 23117 0 Dec23 ? S 7:57 \_ proftpd: jack - ftpsrv: IDLE

jack 28944 23117 0 Dec23 ? S 4:56 \_ proftpd: jack - ftpsrv: IDLE

这样就可以看到proftpd这个进程下面挂了两个线程。

在Linux下面好像因为没有真正的线程,是用进程模拟的,有一个是辅助线程,所以真正程序开的线程应该只有一个。

2. pstree -c也可以达到相同的效果

$ pstree -c | grep proftpd

|-proftpd-+-proftpd

| `-proftpd

3. cat /proc/${pid}/status

可以查看大致的情况

4. pstack

有些系统可以用这个东东,可以查看所有线程的堆栈

如何查看进程中各线程的内存占用情况?

用ps aux只能查看到进程,如果进程里面使用了pthread编程,用什么命令才能查询到进程里的线程资源占用?

ps aux | grep不就是了

基于嵌入式Linux多线程聊天系统的设计与实现

基于嵌入式Linux多线程聊天系统的设计与实现 学生姓名王宣达 学号 S2******* 所在系(院)电子信息工程系 专业名称电路与系统年级 2009级 2011年8月3日

中文摘要

外文摘要

目录 1.引言 (1) 2.Linux多线程聊天系统的设计思想 (3) 2.1 聊天系统中服务器的设计思想 (3) 2.2 聊天系统中客户端的设计思想 (3) 3. Linux多线程聊天系统的实现过程 (5) 3.1 多线程聊天系统中服务器端的实现过程 (5) 3.2 多线程聊天系统中客户端的实现过程 (7) 4.Linux多线程系统设计中出现的问题和解决的方法 (12) 4.1 多线程中资源的释放问题 (12) 4.2 (12) 参考文献 (12)

1.引言 在80年代中期,线程技术就应用到了操作系统中,那时在一个进程中只允许有一个线程,这样多线程就意味着多进程,虽然实现了多任务,但是资源消耗还是非常可观的。而到现在,多线程技术已经被许多操作系统所支持,有Windows/NT,还有Linux。 多线程和进程相比有两点优势: 1.它是一种消耗资源非常少的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种消耗非常大的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,这样创建一个线程所占用的空间远远小于创建一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。当然,随着系统的不同,这个差距也不不同。 2.线程间比进程间的通信机制更为便利。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。当然,数据的共享也带来其他一些问题,有的变量不能同时被两个线程所修改,这时就要用到互斥锁机制来保证线程间的同步。 所以在本文的多线程聊天程序的设计中,采用多线程的方式设计系统更为适宜。其中,系统中用到的操作主要是:线程操作,设置互斥锁。其中,线程操作包括:线程创建,退出,。设置互斥锁包括:创建互斥锁,加锁和解锁。 但是,要实现网络聊天,系统中还要用到linux下的网络编程。 Linux下的网络编程通过socket接口实现。socket 是一种特殊的I/O,可以实现网络上的通信机制。Socket也是一种文件描述符。它具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket

基于linux的socket多线程通信

1、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: ?消息传递(管道、FIFO、消息队列) ?同步(互斥量、条件变量、读写锁、文件和写记录 锁、信号量) ?共享内存(匿名的和具名的) ?远程过程调用(Solaris门和Sun RPC) 但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的―ip地址‖可以唯一标识网络中的主机,而传输层的―协议+端口‖可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。 使用TCP/IP协议的应用程序通常采用应用编程接口:UNIX BSD的套接字(socket)和UNIX System V的TLI(已经被淘汰),来实现网络进程之间的通信。就目前而言,几乎所有的应用程序都是采用socket,而现在又是网络时代,网络中进程通信是无处不在,这就是我为什么说―一切皆socket‖。 2、什么是Socket? 上面我们已经知道网络中的进程是通过socket来通信的,那什么是socket呢?socket起源于Unix,而Unix/Linux基本哲学之一就是―一切皆文件‖,都可以用―打开open –> 读写write/read –> 关闭close‖模式来操作。我的理解就是Socket就是该模式的一个实现,socket 即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭),这些函数我们在后面进行介绍。 socket一词的起源 在组网领域的首次使用是在1970年2月12日发布的文献IETF RFC33中发现的,撰写者为Stephen Carr、Steve Crocker和Vint Cerf。根据美国计算机历史博物馆的记载,Croker写道:―命名空间的元素都可称为套接字接口。一个套接字接口构成一个连接的一端,而一个连接可完全由一对套接字接口规定。‖计算机历史博物馆补充道:―这比BSD的套接字接口定义早了大约12年。‖ 3、socket的基本操作 既然socket是―open—write/read—close‖模式的一种实现,那么socket就提供了这些操作对应的函数接口。下面以TCP为例,介绍几个基本的socket接口函数。 3.1、socket()函数 int socket(int domain, int type, int protocol); socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。 正如可以给fopen的传入不同参数值,以打开不同的文件。创建socket的时候,也可以指定不同的参数创建不同的socket描述符,socket 函数的三个参数分别为:

【IT专家】linux下根据进程号PID查找程序路径

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 linux下根据进程号PID查找程序路径 2017/05/26 0 1、执行ps -u hdfs查看hdfs用户下在运行的进程; ?如:ps -u hdfs PID TTY TIME CMD27939 ? 16:07:09 java31211 ? 00:23:16 HwChrDecode ?2、进入/proc相应进程PID的文件夹 ?#cd /proc/27939#ls –ail ?可以看到对应的程序路径 ?ls -ail总计01831010306 dr-xr-xr-x 5 hdfs hadoop 0 03-23 09:13 . 1 dr-xr-xr-x 280 root root 0 03-18 10:18 ..1831010327 dr-xr-xr-x 2 hdfs hadoop 0 05-26 10:33 attr1831010315 -r-------- 1 hdfs hadoop 0 05-26 10:28 auxv1831010316 -r--r--r-- 1 hdfs hadoop 0 05-26 04:18 cmdline1831010337 -rw-r--r-- 1 hdfs hadoop 0 05-26 10:28 coredump_filter1831010326 -r--r--r-- 1 hdfs hadoop 0 05-26 10:28 cpuset1831010310 lrwxrwxrwx 1 hdfs hadoop 0 05-26 10:28 cwd - /data1/hadoop/uts2-agent1831010314 -r-------- 1 hdfs hadoop 0 05-26 10:28 environ1831010312 lrwxrwxrwx 1 hdfs hadoop 0 05-26 10:28 exe - /usr/java/jdk1.6.0_35/bin/java1831010313 dr-x------ 2 hdfs hadoop 0 05-26 10:33 fd1831010370 -r--r--r-- 1 hdfs hadoop 0 05-26 10:28 io1831010368 -r-------- 1 hdfs hadoop 0 05-26 10:28 limits1831010334 -rw-r--r-- 1 hdfs hadoop 0 05-26 10:28 loginuid1831010319 -r--r--r-- 1 hdfs hadoop 0 05-26 10:28 maps1831010309 -rw------- 1 hdfs hadoop 0 05-26 10:28 mem1831010321 -r--r--r-- 1 hdfs hadoop 0 05-26 04:17 mounts1831010322 -r-------- 1 hdfs hadoop 0 05-26 10:28 mountstats1831010320 -r--r--r-- 1 hdfs hadoop 0 05-26 10:28 numa_maps1831010336 -rw-r--r-- 1 hdfs hadoop 0 05-26 10:28 oom_adj1831010335 -r--r--r-- 1 hdfs hadoop 0 05-26 10:28 oom_score1831010311 lrwxrwxrwx 1 hdfs hadoop 0 05-26 10:28 root - /1831010325 -r--r--r-- 1 hdfs hadoop 0 05-26 10:28 schedstat1831010324 -r--r--r-- 1 hdfs hadoop 0 05-26 10:28 smaps1831010317 -r--r--r-- 1 hdfs hadoop 0 05-26 04:18 stat1831010318 -r--r--r-- 1 hdfs hadoop 0 05-26 10:21 statm1831010308 -r--r--r-- 1 hdfs hadoop 0 05-26 04:18 status1831010307 dr-xr-xr-

Linux 查看进程和删除进程

1. 在 LINUX 命令平台输入 1-2 个字符后按 Tab 键会自动补全后面的部分(前提是要有这个东西,例如在装了 tomcat 的前提下, 输入 tomcat 的 to 按 tab)。 2. ps 命令用于查看当前正在运行的进程。 grep 是搜索 例如: ps -ef | grep java 表示查看所有进程里 CMD 是 java 的进程信息 ps -aux | grep java -aux 显示所有状态 ps 3. kill 命令用于终止进程 例如: kill -9 [PID] -9 表示强迫进程立即停止 通常用 ps 查看进程 PID ,用 kill 命令终止进程 网上关于这两块的内容 ----------------------------------------------------------------------------------- PS ----------------------------------------------------------------------------------- 1. ps 简介 ps 命令就是最根本相应情况下也是相当强大地进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地. 2. ps 命令及其参数 ps 命令最经常使用地还是用于监控后台进程地工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设 备进行通信地,所以如果需要检测其情况,便可以运用 ps 命令了. 该命令语法格式如下: ps [选项] -e 显示所有进程,环境变量 -f 全格式 -h 不显示标题 -l 长格式 -w 宽输出 a 显示终端上地所有进程,包括其他用户地进程 r 只显示正在运行地进程 x 显示没有控制终端地进程 O[+|-] k1 [,[+|-] k2 [,…]] 根据 SHORT KEYS、k1、k2 中快捷键指定地多级排序顺序显示进程列表. 对于 ps 地不同格式都存在着默认地顺序指定.这些默认顺序可以被用户地指定所覆盖.在这里面“+”字符是可选地,“-” 字符是倒转指定键地方向. pids 只列出进程标识符,之间运用逗号分隔.该进程列表必须在命令行参数地最后一个选项后面紧接着给出,中间不能插入空格.比如:ps -f1,4,5.

Linux操作系统进程管理的分析与应用

Linux操作系统进程管理的分析与应用(1)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北目录 1、程序和进程; 1.1 进程分类; 1.2 进程的属性; 1.3 父进程和子进程; 2、进程管理; 2.1 ps 监视进程工具; 2.1.1 ps参数说明; 2.1.2 ps 应用举例; 2.2 pgrep 3、终止进程的工具 kill 、killall、pkill、xkill; 3.1 kill 3.2 killall 3.3 pkill 3.4 xkill 4、top 监视系统任务的工具; 4.1 top 命令用法及参数; 4.2 top 应用举例; 5、进程的优先级: nice和renice; 6、关于本文; 7、后记; 8、参考文档; 9、相关文档; 1、程序和进程; 程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。 一个运行着的程序,可能有多个进程。比如 https://www.doczj.com/doc/211066577.html, 所用的WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求httpd服务,

apache服务器将会创建有多个httpd进程来对其进行服务。 1.1 进程分类; 进程一般分为交互进程、批处理进程和守护进程三类。 值得一提的是守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动。比如在Fedora或Redhat中,我们可以定义httpd 服务器的启动脚本的运行级别,此文件位于/etc/init.d目录下,文件名是httpd, /etc/init.d/httpd 就是httpd服务器的守护程序,当把它的运行级别设置为3和5时,当系统启动时,它会跟着启动。 [root@localhost ~]# chkconfig --level 35 httpd on 由于守护进程是一直运行着的,所以它所处的状态是等待请求处理任务。比如,我们是不是访问 https://www.doczj.com/doc/211066577.html, ,https://www.doczj.com/doc/211066577.html, 的httpd服务器都在运行,等待着用户来访问,也就是等待着任务处理。 Linux操作系统进程管理的分析与应用(2)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北 1.2 进程的属性; 进程ID(PID):是唯一的数值,用来区分进程; 父进程和父进程的ID(PPID); 启动进程的用户ID(UID)和所归属的组(GID); 进程状态:状态分为运行R、休眠S、僵尸Z; 进程执行的优先级; 进程所连接的终端名; 进程资源占用:比如占用资源大小(内存、CPU占用量); 1.3 父进程和子进程; 他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。 在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行;

oracle查看后台进程

何查看后台进程? ?系统环境: 1、操作系统:Windows 2000 Server,机器内存128M 2、数据库:Oracle 8i R2 (8.1.6) for NT 企业版 3、安装路径:C:\ORACLE ?实现步骤: ? ?SQL> desc v$bgprocess ?名称空? 类型 ? ----------------------------------------- -------- ----------------- ? PADDR RAW(4) --进程状态对象地址 ? NAME VARCHAR2(5) --后台进程名称 ? DESCRIPTION VARCHAR2(64) --后台进程描述 ? ERROR NUMBER --后台进程运行中所遇到的错误数 ? ?SQL> col DESCRIPTION format a40 ?SQL> select * from v$bgprocess; ? ?PADDR NAME DESCRIPTION ERROR ?-------- ----- ---------------------------------------- ---------- ?02CB8B4C PMON process cleanup ########## ?00 TRWR trace writer process ########## ?00 LMON lkmgr monitor ########## ?00 LMD0 lkmgr daemon 0 ########## ?02CB8E6C DBW0 db writer process 0 ########## ?00 DBW1 db writer process 1 ########## ?00 DBW2 db writer process 2 ########## ?00 DBW3 db writer process 3 ##########

linux进程线程管理实验报告

linux进程线程管理实验报告

————————————————————————————————作者:————————————————————————————————日期:

西安郵電學院 操作系统LINUX实验报告 题目1:进程______ 题目2:线程管理__ 题目3:互斥_____系部名称:计算机学院 专业名称:软件工程 班级:0802 学号:04085048 学生姓名:郭爽乐 时间:2010-10-31

实验一: 进程管理 一.实验目的 通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点, 掌握在POSIX 规范中fork和kill系统调用的功能和使用。 二.实验要求 2.1 实验环境要求 1. 硬件 (1) 主机:Pentium III 以上; (2) 内存:128MB 以上; (3) 显示器:VGA 或更高; (4) 硬盘空间:至少100MB 以上剩余空间。 2. 软件 Linux 操作系统,内核2.4.26 以上,预装有X-Window 、vi、gcc、gdb 和任意web 浏览器。 2.2 实验前的准备工作 学习man 命令的用法,通过它查看fork 和kill 系统调用的在线帮助,并阅读参 考资料,学会fork 与kill 的用法。 复习C 语言的相关内容。 三、实验内容 3.1 补充POSIX 下进程控制的残缺版实验程序 3.2回答下列问题: 1. 你最初认为运行结果会怎么样? 2. 实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。 3. proc_number 这个全局变量在各个子进程里的值相同吗?为什么? 4. kill 命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么? 5. 使用kill 命令可以在进程的外部杀死进程。进程怎样能主动退出?这两种退出方式哪种更好一些? 四、实验结果 4.1 补充完全的源程序 #include #include #include

Linux下查看进程和线程

在Linux中查看线程数的三种方法 1、top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。 2、ps xH 手册中说:H Show threads as if they were processes 这样可以查看所有存在的线程。 3、ps -mp 手册中说:m Show threads after processes 这样可以查看一个进程起的线程数。 查看进程 1. top 命令 top命令查看系统的资源状况 load average表示在过去的一段时间内有多少个进程企图独占CPU zombie 进程:不是异常情况。一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而已不必害怕。如果程序有问题有机会遇见,解决大批量僵尸简单有效的办法是重起。kill是无任何效果的stop模式:与sleep进程应区别,sleep会主动放弃cpu,而stop 是被动放弃cpu ,例单步跟踪,stop(暂停)的进程是无法自己回到运行状态的。 cpu states: nice:让出百分比irq:中断处理占用 idle:空间占用百分比iowait:输入输出等待(如果它很大说明外存有瓶颈,需要升级硬盘(SCSI)) Mem:内存情况 设计思想:把资源省下来不用便是浪费,如添加内存后free值会不变,buff值会增大。判断物理内存够不够,看交换分区的使用状态。 交互命令: [Space]立即刷新显示 [h]显示帮助屏幕

Linux系统中的ps进程查看命令使用实例集锦

这篇文章主要介绍了Linux系统中的ps进程查看命令使用实例集锦,包括对ps命令的常用参数总结,整理得非常全面,需要的朋友可以参考下 linux 中ps命令是Process Status的缩写。ps命令可以列出系统中当前运行的进程,所列出的进程是执行ps命令这个时刻正在运行的进程。 如果要动态显示进程信息,需要使用top命令。 通过ps命令,可以确定哪些进程正在运行和运行状态、进程是否结束、进程是否僵死,哪些进程占用过多资源等。 要杀死进程,使用kill命令,例:kill 12345 (12345为进程的pid) linux进程有5种状态 1.运行(正在运行或在运行队列中等待) 2.中断(休眠中,受阻,或等待某个条件的形成或接受到信号) 3.不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生) 4.僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放) 5.停止(进程受到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行) ps 5种进程状态的标识码如下: R 运行runnable(on run queue) S 中断sleeping D 不可中断uninterruptible sleep (usually IO) Z 僵死a defunct("zombie") process T 停止traced or stopped 命令参数 a 显示所有进程 -a 显示同一终端下的所有程序 -A 显示所有进程 c 显示进程的真实名称 -N 反向选择

-e 等于“-A” e 显示环境变量 f 显示程序间的关系 -H 显示树状结构 r 显示当前终端的进程 T 显示当前终端的所有程序 u 指定用户的所有进程 -au 显示较详细的资讯 -aux 显示所有包含其他使用者的进程 -C<命令> 列出指定命令的状况 –lines<行数> 每页显示的行数 –width<字符数> 每页显示的字符数 –help 显示帮助信息 –version 显示版本显示 输出列的含义 F 代表这个程序的旗标(flag),4 代表使用者为super user S 代表这个程序的状态(STAT),关于各STAT 的意义将在内文介绍 UID 程序被该UID 所拥有 PID 进程的ID PPID 则是其上级父程序的ID C CPU 使用的资源百分比 PRI 这个是Priority (优先执行序) 的缩写,详细后面介绍 NI 这个是Nice 值,在下一小节我们会持续介绍 ADDR 这个是kernel function,指出该程序在内存的那个部分。如果是个running的程序,一般就是“-“

Linux2 进程的启动方式

Linux2 进程的启动方式 程序或者命令的执行实际上是通过进程实现的。通常情况下,程序或者命令是保存在硬盘上的,当在命令行中输入一个可执行程序的文件名或者命令并按下Enter 键后,系统内核就将该程序或者命令的相关代码加载到内存中开始执行。系统会为该程序或者命令创建一个或者多个相关的进程,通过进程完成特定的任务。启动进程的方式有两种,分别为前台启动方式和后台启动方式。 1.以前台方式启动进程 在终端窗口的命令行上输入一个Linux命令并按Enter键,就是以前台方式启动了一个进程。例如,在终端窗口上执行“find /-name myfile.txt”命令,就以前台方式启动了一个进程,在该进程还未执行完时,可按下Ctrl+z组合键将该进程暂时挂起,然后使用ps命令查看该进程的有关信息,如图5-1所示。 图5-1 以前台方式启动进程 2.以后台方式启动进程 要在命令行上以后台方式启动进程,需要在执行的命令后添加一个“&”。例如,在终端窗口的命令行上输入命令“find / -name myfile2.txt &”并按下Enter键后将从后台启动一个进程。启动后,系统会显示如下所示的信息: 这里的数字2表示该进程是运行于后台的第2个进程,数字3516是该进程的PID(即进程标识码,用于惟一地标识一个进程)。 然后,出现了shell提示符,这表示已返回到前台。这时,执行ps命令将能够看到现在在系统中有两个由find命令引起的进程,它们的标识号是不同的,因而是两个不同的进程,其中,PID为3385的进程就是刚才被挂起的进程。 如果执行jobs命令可以查看当前控制台中的后台进程,如图5-2所示,可以看到当前在后台有两个进程,其中一个处于运行(Running)状态,另一个,即被挂起的进程处于停止(Stopped)状态。等过一段时间后再使用ps命令进行查看,会发现PID为3516的进程已经结束了,而PID为3385的进程还存在。

LINUX 查找进程及终止进程操作的相关命令

使用linux操作系统,难免遇到一些软件卡壳的问题,这时就需要使用linux下强大的kill命令来结束相关进程。这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关的进程PID号。 首先,我们需要使用linux下另外一个命令ps查找与进程相关的PID号:ps aux | grep program_filter_word 1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。 2)ps -A 显示所有程序。 3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 4)ps -e 此参数的效果和指定A参数相同。 5)ps e 列出程序时,显示每个程序所使用的环境变量。 6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。 7)ps -H 显示树状结构,表示程序间的相互关系。 8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。 9)ps s 采用程序信号的格式显示程序状况。 10)ps S 列出程序时,包括已中断的子程序资料。 11)ps -t<终端机编号; 指定终端机编号,并列出属于该终端机的程序的状况。 12)ps u 以用户为主的格式来显示程序状况。 13)ps x 显示所有程序,不以终端机来区分。 最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。 其次,使用kill命令结束进程:kill xxx 1)作用 kill命令用来中止一个进程。

2)格式 kill [ -s signal | -p ] [ -a ] pid ... kill -l [ signal ] 3)参数 -s:指定发送的信号。 -p:模拟发送信号。 -l:指定信号的名称列表。 pid:要中止进程的ID号。 Signal:表示信号。 4)说明 进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。 Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)是Linux系统启动时启动的进程,并在后台运行。例如,httpd 是著名的Apache服务器的监控进程。 kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。 5)应用实例 (1)强行中止(经常使用杀掉)一个进程标识号为324的进程: #kill -9 324 (2)解除Linux系统的死锁

Linux实验五 进程管理命令

实验五进程管理命令 一、实验目的 (1)了解如何监视系统运行状态 (2)掌握查看、删除进程的正确方法 (3)掌握命令在后台运行的用法 (4)掌握进程手工、调度启动的方法 二、常用命令 who 查看当前在线用户 top 监视系统状态 ps 查看进程 kill 向进程发信号 bg 把进程变成后台运行 & 把进程变成后台运行 fg 把后台进程变成前台运行 jobs 显示处于后台的进程。 at 在指定的时刻执行指定的命令或命令序列 batch 在系统负载较低、资源较空闲时执行命令或命令序列以上命令的具体用法请参阅教材、课件和man手册 三、实验内容 1、用top命令察看当前系统的状态,并识别各进程的有关栏目。 2、用ps命令察看系统当前的进程,并把系统当前的进程保存到文件 process中。

3、用ps命令察看系统当前有没有init进程。 4、输入“cat <回车>” 按-z 键,出现什么情况?输入fg命令出现什么情况? 答:将cat进程挂起,fg将挂起进程调到前台运行 按-c 键,出现什么情况? 答;强制中断 5、输入“find / -name ls*>temp &”,该命令的功能是什么? 查看该进程; 答:在根目录下按名字查找以ls开头的文件,并把查询结果保存到temp文件,并且把进程置为后台运行 输入killall find命令后,再查看该进程。 答:输入该命令后回车后,和fand相关的进程全部被杀死 6、输入“find / -name ls*>temp &” 输入jobs命令,出现什么情况? 答;查看后台进程的信息 输入fg命令出现什么情况? 答:将后台进程调到前台运行

linux进程间通讯

linux进程间通讯 管道(FIFO): 管道可分为命名管道和非命名管道(匿名管道),匿名管道只能用于父、子进程间通讯,命名管道可用于非父子进程。命名管道就是FIFO,管道是先进先出的通讯方式。 消息队列: 消息队列用于2个进程间通讯,首先在1个进程中创建1个消息队列,然后可向消息队列中写数据,而另一进程可从该消息队列中读取数据。 注意,消息队列是以创建文件的方式建立的,若1个进程向某消息队列中写入数据后,另一进程并未读取这些数据,则即使向消息队列中写数据的进程已退出,但保存在消息队列中的数据并未消失,也就是说下次再从这个消息队列中读数据时,还是会读出已退出进程所写入的数据。 信号量: linux中的信号量类似于windows中的信号量。 共享内存: 共享内存,类似于windows中dll的共享变量,但linux下的共享内存区不需要象DLL这样的东西,只要先创建1个共享内存区,其它进程按照一定步骤就能访问到这个共享内存区中的数据(可读可写)。 信号——signal 套接字——socket 各种ipc机制比较: 1.匿名管道:速度较慢,容量有限,且只有父、子进程间能通讯; 2.命名管道(FIFO):任何进程间都能通讯,但速度较慢; 3.消息队列:容量受系统限制,且要对读出的消息进行测试(读出的是新写入的消息,还是以前写入的, 尚未被读取的消息); 4.信号量:不能传递复杂信息,只能用来同步; 5.共享内存:容量大小可控,速度快,但共享内存区不包含同步保护,对共享内存区的访问需由用户实 现同步保护。 另外,共享内存同样可用于线程间通讯,不过没必要,线程间本来就已共享了同一进程内的一块内存。 线程间同步方法: 1.临界区:使多线程间串行访问公共资源或1段代码,速度较快,适合控制数据访问; 2.互斥量:为同步对共享资源的单独访问而设计的; 3.信号量:为控制1个具有有限数量用户资源而设计; 4.事件对象:用来通知线程有一些事件已发生,从而启动后继任务。

进程的查看和调度分别使用什么命令

进程的查看和调度分别使用什么命令 简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?参考答案:(1)ftp有两种登录方式:匿名登录和授权登录。使用匿名登录时,用户名为:anonymous,密码为:任何合法email地址;使用授权登录时,用户名为用户在远 系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监测。管理的对象是服务器、用户、服务器的进程及系统的各种资源等。 1、包含多个源文件的项目在编译时有长而复杂的命令行,可以通过makefile保存这些命令行来简化该工作 2、make可以减少重新编译所需要的时间,因为make可以识别出哪些文件是新修改的 3、Make维护了当前项目中各文件的相关关系,从而可以在编译前检查是否可以找 在Linux中启动一个进程有手工启动和调度启动两种方式:(1)手工启动用户在输入端发出命令,直接启动一个进程的启动方式。可以分为:①前台启动:直接在SHELL中输入命令进行启动。②后台启动:启动一个目前并不紧急的进程,如打印进程。(2)调度启动系 添加账户useradd 用户名passwd 用户名groupadd 组名

usedel -r 用户名/etc/group /etc/passwd /etc/shadow 三个重要文件group 文件格式:组名:x :组ID:组成员passwd文件格式:用户名:x:用户ID:组ID::用户目录:shell 用户在passwd文件中体 ?GCC的编译过程–预处理、编译、链接?GCC支持的风格–ANSI C、C++、Objective C ?调试信息方面–能够在生成调试信息同时进行优化?GCC支持交叉编译?GCC支持大量扩展(降低可移植性)

查看Linux进程占用的资源

查看Linux进程占用的资源 查看Linux系统下某一个进程占用的资源是进行系统调测的关键。它不仅涉及到健壮性,也涉及到程序的调优。尤其是对于那些需要长时间在内存中运行的程序,如果发生随着外部运行环境的变化而导致的资源占用的不当起伏,势必导致程序运行的潜在风险。 top top是灵活的CPU状态的查看工具,类似任务管理器。Top命令一般分成两部分进行显示,第一部分是当前系统的运行概况: 第一行(top): top - 17:03:45 up 58 days, 4:01, 1 user, load average: 0.00, 0.02, 0.00 “17:03:45”为系统当前时刻; “58 days,4:01”为系统启动后到现在的运作时间; “1 user”为当前登录到系统的用户,更确切的说是登录到用户的终端数--同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过CPU数目时,CPU将比较吃力的负载当前系统所包含的进程; 第二行(Tasks): “172 total”为当前系统进程总数; “1 running”为当前运行中的进程数; “171 sleeping”为当前处于等待状态中的进程数; “0 stoped”为被停止的系统进程数; “0 zombie”为僵死的进程数; 第三行(Cpus): 显示CPU利用率的详细信息,如果有多个CPU,屏幕将在每行显示一个CPU 的信息。 第四行(Mem): 显示可用的和已利用的内存 第五行(Swap): 表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。 其余的显示内容以表格格式显示进程。下面对各列进行解释:各个不同的列的内容为: PID 进程的进程ID USER 运行该进程的用户 PRI 进程的优先级

操作系统实验报告理解Linux下进程和线程的创建并发执行过程。

操作系统上机实验报告 实验名称: 进程和线程 实验目的: 理解unix/Linux下进程和线程的创建、并发执行过程。 实验内容: 1.进程的创建 2.多线程应用 实验步骤及分析: 一、进程的创建 下面这个C程序展示了UNIX系统中父进程创建子进程及各自分开活动的情况。 fork( ) 创建一个新进程。 系统调用格式: pid=fork( ) 参数定义: int fork( ) fork( )返回值意义如下: 0:在子进程中,pid变量保存的fork( )返回值为0,表示当前进程是子进程。 >0:在父进程中,pid变量保存的fork( )返回值为子进程的id值(进程唯一标识符)。 -1:创建失败。 如果fork( )调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork( )被调用了一次,但返回了两次。此时OS在内存中建立一个新进程,所建的新进程是调用fork( )父进程(parent process)的副本,称为子进程(child process)。子进程继承了父进程的许多特性,并具有与父进程完全相同的用户级上下文。父进程与子进程并发执行。 2、参考程序代码 /*process.c*/ #include #include main(int argc,char *argv[]) { int pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1);

如何在Linux中查看所有正在运行的进程

如何在Linux中查看所有正在运行的进程 进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。在Linux 系统中有很多命令。那么哪些命令可以查看所有运行中的进程呢? 你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX 都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。 ps命令 输入下面的ps命令,显示所有运行中的进程: # ps aux | less 其中, -A:显示所有进程 a:显示终端中包括其它用户的所有进程 x:显示无控制终端的进程 任务:查看系统中的每个进程。 # ps -A # ps -e 任务:查看非root运行的进程 # ps -U root -u root -N 任务:查看用户vivek运行的进程 # ps -u vivek 任务:top命令 top命令提供了运行中系统的动态实时视图。在命令提示行中输入top: # top 输出: 图1:top命令:显示Linux任务 按q退出,按h进入帮助。

任务:显示进程的树状图。 pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。 $ pstree 输出示例: 图2:pstree - 显示进程的树状图 任务:使用ps列印进程树 # ps -ejH # ps axjf 任务:获得线程信息 输入下列命令: # ps -eLf # ps axms 任务:获得安全信息 输入下列命令: # ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM 任务:将进程快照储存到文件中 输入下列命令: # top -b -n1 > /tmp/process.log 你也可以将结果通过邮件发给自己: # top -b -n1 | mail -s 'Process snapshot' you@https://www.doczj.com/doc/211066577.html,

linux查看系统进程信息命令px,top详解

linux查看系统进程信息命令px,top详解 ps ax命令是显示一个当前系统进程的列表,该列表中包括其它用户拥有的进程,-a 显示所有终端机下执行的程序,除了阶段作业领导者之外。 a 显示现行终端机下的所有程序,包括其他用户的程序。 -A 显示所有程序。 -c 显示CLS和PRI栏位。 c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 -C<指令名称> 指定执行指令的名称,并列出该指令的程序的状况。 -d 显示所有程序,但不包括阶段作业领导者的程序。 -e 此参数的效果和指定"A"参数相同。 e 列出程序时,显示每个程序所使用的环境变量。 -f 显示UID,PPIP,C与STIME栏位。 f 用ASCII字符显示树状结构,表达程序间的相互关系。 -g<群组名称> 此参数的效果和指定"-G"参数相同,当亦能使用阶段作业领导者的名称来指定。 g 显示现行终端机下的所有程序,包括群组领导者的程序。 -G<群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定。 h 不显示标题列。 -H 显示树状结构,表示程序间的相互关系。 -j或j 采用工作控制的格式显示程序状况。 -l或l 采用详细的格式来显示程序状况。 L 列出栏位的相关信息。 -m或m 显示所有的执行绪。 n 以数字来表示USER和WCHAN栏位。 -N 显示所有的程序,除了执行ps指令终端机下的程序之外。 -p<程序识别码> 指定程序识别码,并列出该程序的状况。 p<程序识别码> 此参数的效果和指定"-p"参数相同,只在列表格式方面稍有差异。 r 只列出现行终端机正在执行中的程序。 -s<阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。 s 采用程序信号的格式显示程序状况。 S 列出程序时,包括已中断的子程序资料。 -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。 t<终端机编号> 此参数的效果和指定"-t"参数相同,只在列表格式方面稍有差异。 -T 显示现行终端机下的所有程序。 -u<用户识别码> 此参数的效果和指定"-U"参数相同。 u 以用户为主的格式来显示程序状况。 -U<用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定。 U<用户名称> 列出属于该用户的程序的状况。 v 采用虚拟内存的格式显示程序状况。 -V或V 显示版本信息。 -w或w 采用宽阔的格式来显示程序状况。 x 显示所有程序,不以终端机来区分。 X 采用旧式的Linux i386登陆格式显示程序状况。 -y 配合参数"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位。

相关主题
文本预览
相关文档 最新文档