8 进程

ps –报告当前进程快照
top –显示任务
jobs –列出活跃的任务
bg –把一个任务放到后台执行
fg –把一个任务放到前台执行
kill –给一个进程发送信号
killall –杀死指定名字的进程
shutdown –关机或重启系统

内核线程(守护线程)与用户线程

一、查看进程——ps

1.最简单的查看进程ps

[email protected]:~$ ps
PID TTY TIME CMD                  TTY是Teletype的简写,指进程的控制终端    TIME字段表示进程所消耗的CPU时间数量
6123 pts/3 00:00:00 bash         bash进程
6170 pts/3 00:00:00 ps           ps进程

2.ps x告诉ps命令,展示多有的进程,不管他们由什么终端控制

[email protected]:~$ ps x
  PID TTY      STAT   TIME COMMAND       STAT是state的简写,表示进程当前的状态
 2149 ?        Sl     0:00 /usr/bin/gnome-keyring-daemon --daemonize --login      ?表示没有终端
 2151 ?        Ss     0:00 upstart --user
 22
39 ?        Ss     0:00 dbus-daemon --fork --session
………………

进程状态

R—运行

S—正在睡眠,等待一个事件

D—不可中断睡眠,进程正在等待I/O

T—已经停止

Z—个死进程或“僵尸”进程,已经终止的进程,但还没来得及清理

<—一个高优先级进程

N—低优先级进程

3.ps aux

[email protected]:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND     USER用户ID %CPU以百分比表示CPU使用率  %MEM内存使用率  VSZ虚拟内存大小
root         1  0.0  0.3   4300  3472 ?        Ss   Aug17   0:03 /sbin/init  RSS进程占用物理空间大小  START进程运行的起始时间root 2 0.0 0.0 0 0 ? S Aug17 0:00 [kthreadd]

二、用top命令动态查看进程

top程序连续显示系统进程更新信息(默认每三分钟更新一次)

top 显示结果由两部分组成:最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。

另外,键盘输入h便是显示帮助

输入q表示退出top程序

三、控制进程

linux的程序可以直接通过输入程序名字打开,比如xlogo程序

[email protected]:~$ xlogo    会打开图形用户界面xlogo

四、中断进程——礼貌性的终止这个程序Ctrl-C

Ctrl-C许多(但不是全部)命令行程序可以被中断。

^C
[email protected]:~$ 

五、把一个进程放置在后台(执行)——& 或 dg

我们想让 shell 提示符返回,却没有终止 xlogo 程序。为达到这个目的,我们把这个程序放到后台执行。

在程序命令之后,加上 “&” 字符:

[email protected]:~$ xlogo &
[1] 6276              6276是PID
[email protected]:~$ 

执行 jobs 命令,我们可以看到这个进程的工作序号(叫做jobspec)

[email protected]:~$ jobs
[1]+  Running                 xlogo &          表示后台正在运行的xlogo程序的工作序号是1

六、程序返回倒前台——fg

一个在后台运行的进程对一切来自键盘的输入都免疫,也不能用 Ctrl-c 来中断它

fg 命令之后,跟随着一个百分号和工作序号(叫做 jobspec)

[email protected]:~$ fg %1
xlogo

然后再可以用Ctrl-c终止xlogo程序

七、停止一个程序——Ctrl-z

停止一个进程,而没有终止它。这样会把一个前台进程移到后台等待。
        输入 Ctrl-z,可以停止一个前台进程

^Z
[1]+  Stopped                 xlogo
[email protected]:~$ 

使用 fg 命令,可以恢复程序到前台运行,或者用 bg 命令把程序移到后台。

[email protected]:~$ bg %1
[1]+ xlogo &
[email protected]:~$ 

八、通过kill命令向进程发送信号

格式  kill [-sinal] PID...      默认情况是发送TERM(终止)信号

注意!进程和文件一样,拥有所有者,所以为了能够通过kill命令来给进程发送信号,你必须是进程的所有者(或者是超级用户)

编号 名字 含义
1 HUP 挂起
2 INT 中断
9 KILL 杀死
15 TERM 终止
18 CONT 继续
19 STOP 停止

九、用killalll命令给多个线程发送信号

格式  kill [-u user] [-sinal] name...    

时间: 2024-10-16 11:29:52

8 进程的相关文章

C#:多进程开发,控制进程数量

正在c#程序优化时,如果多线程效果不佳的情况下,也会使用多进程的方案,如下: System.Threading.Tasks.Task task=System.Threading.Tasks.Task.Factory.StartNew( (object mystate) => { Process process = Process.Start("AutoCollectMrMultipleProcess.exe", mystate.ToString()); process.WaitF

C# 远程服务器 安装、卸载 Windows 服务,读取远程注册表,关闭杀掉远程进程

这里安装windows服务我们用sc命令,这里需要远程服务器IP,服务名称.显示名称.描述以及执行文件,安装后需要验证服务是否安装成功,验证方法可以直接调用ServiceController来查询服务,也可以通过远程注册表来查找服务的执行文件:那么卸载文件我们也就用SC命令了,卸载后需要检测是否卸载成功,修改显示名称和描述也用sc命令.至于停止和启动Windows服务我们可以用sc命令也可以用ServiceController的API,当停止失败的时候我们会强制杀掉远程进程,在卸载windows

【转】linux下杀死进程(kill)的N种方法

转载一篇,最原始的出处已不可考,望见谅! 常规篇: 首先,用ps查看进程,方法如下: $ ps -ef --smx       1822     1  0 11:38 ?        00:00:49 gnome-terminalsmx       1823  1822  0 11:38 ?        00:00:00 gnome-pty-helpersmx       1824  1822  0 11:38 pts/0    00:00:02 bashsmx       1827    

os -- 进程的控制

os -- 进程的控制 新建 模板 小书匠 参考 <计算机操作系统>(第四版) 汤小丹等编著 概念引入 进程控制 进程控制是最基本的功能,负责创建进程.结束进程等功能,一般由 OS 内核中的原语来实现 原语 所谓原语,就是由若干条指令组成的,用于完成一定功能的一个过程,算是不可分割的.最基本的操作 Note 接下来原语基本用于所有的操作 操作系统内核 操作系统将一些常用或者运行频率较高的模块(如时钟管理.进程调度等)常驻内存,这些就被称为 OS 内核 两大功能 支撑功能 中断处理 时钟管理 原

linux进程管理

进程管理 进程 Process 某应用程序打开的进程 PID Process ID 类型: 用户空间进程 内核空间进程 静态查看进程的状态 # ps [[email protected] ~]# ps >>>>查看本终端的进程 PID TTY          TIME CMD 4206 pts/0    00:00:00 bash 4378 pts/0    00:00:00 ps 选项的使用方式: BSD风格:选项没有横线- ps aux SysV风格:选项需要带有横线-  

linux基本命令整理(三):进程和vim

linux基本命令整理(三) -----------进程和vim 一.进程 1.查看进程 ps:将某个时间点的程序运行的状况截取下来 a:所有的进程 x:后台进程 u:有效的使用者相关的进程(常用组合aux) -IA:也能观察系统所有的数据 axjf:连同部分的程序树状态 -I:今查看和自己bash相关的程序 top:动态的观察进程的变化 -d:后面接描述,就是整个页面刷新的时间:默认是5秒 -b:以批次的方式执行top -n:与-b搭配使用,意义是需要进行几次top的输出结果 如:top -b

内存池、进程池、线程池

首先介绍一个概念"池化技术 ".池化技术 一言以蔽之就是:提前保存大量的资源,以备不时之需以及重复使用. 池化技术应用广泛,如内存池,线程池,连接池等等.内存池相关的内容,建议看看Apache.Nginx等开源web服务器的内存池实现. 起因:由于在实际应用当中,分配内存.创建进程.线程都会设计到一些系统调用,系统调用需要导致程序从用户态切换到内核态,是非常耗时的操作.           因此,当程序中需要频繁的进行内存申请释放,进程.线程创建销毁等操作时,通常会使用内存池.进程池.

Linux进程的睡眠和唤醒

1   Linux进程的睡眠和唤醒 在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状态标志位为TASK_RUNNING.一旦一个运行中的进程时间片用完, Linux内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行. 当然,一个进程也可以主动释放CPU的控制权.函数schedule()是一个调度函数,它可以被一个进程主动调用,从而调度其它进程占用CPU.一旦这个主动放弃CPU的进程被重新调度占用CPU,那么它将从

C#杀掉进程的方法

1 private static string CmdName = "cmd"; 2 /// <summary> 3 /// 关闭进程 4 /// </summary> 5 /// <param name="processName">进程名</param> 6 private void KillProcess(string processName) 7 { 8 Process[] myproc = Process.Ge

Linux进程管理与调度-之-目录导航【转】

转自:http://blog.csdn.net/gatieme/article/details/51456569 版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme 目录(?)[-] 项目链接 进程的描述 进程的创建 进程的加载与运行 进程的退出 进程的调度 调度普通进程-完全公平调度器CFS 日期 内核版本 架构 作者 GitHub CSDN 2016-07-21 Linux-4.6 X86 & arm gatieme