永利官网ylg客户端[Linux]——进度管理相关

Linux shell入门基础(四),linuxshell入门基础

四、进程优先级前台后台01.进程控制#find /name aaa &#ps aux | grep
find#updatedb & #ps aux | grep updatedbroot 5871 52.8 0.2 2204 700
pts2 R(低优先级) 08:43 0:02 updatedb#nice -n -10(优先级) updatedb
&##ps aux | grep updateroot 5871 52.8 0.2 2204 700 pts2
D<(高优先级) 08:43 0:02 updatedb#nice -n 10 updatedb &root 5871 52.8
0.2 2204 700 pts2 RN(低优先级) 08:43
0:02 updatedb#top(查看进程状态)此时按r可以改变优先级的高低#ps aux
-ef#kill PID kill -9 PID#killall Pname#killall -9 byf#skill -9
tty1#pkill -u byf#pstree(树形显示进程目录)#renice -10
1(把一个进程的优先级调为-10)#top
r进程概念:有init来初始化所有进程,PID总是为102.进程控制的前台和后台#vi(前台)#vi
$(后台运行)#kill %1(杀掉后台第一个任务)#fg
%3(从后台放回前台)#update Ctrl+z(放到回台,暂停)#jobs(查看后台任务)#bg
%1(从后台开始运行)#fg %1(从后台拉到前台)#nohup updatedb
&(父进程退出后,将子进程挂起)#exit从新打开一个控制台#ps aux | grep
updatedb#find / -name sssss &Ctrl+z(暂停)#jobs#kill %1 

shell入门基础(四),linuxshell入门基础
四、进程优先级前台后台01.进程控制#find /name aaa #ps aux | grep
find#updatedb #ps aux | grep updatedbroot 5…

Pkill –u 用户 更精确的杀用户

一些概念

程序program:通常以二进制程序放置在存储媒介中,以物理文件形式存在

进程process:程序通过用户执行被触发后,执行者的权限与属性、程序的代码和所需数据会被加载到内存中,OS给予这个内存单元一个标识符(PID)。可以说,进程就是一个正在运行的程序。

 

CMD:进程的bash命令

在按M按占内存的大小排列

pstree 显示进程树

# pstree
# pstree -Aup

 

MEM:内存占用百分比

就是在shell里当前操作的指令就是前台。

进程是如何产生的?

                永利官网ylg客户端 1

 

但是如果此刻我正在用VIM,但是想退出去查找某个东西,那么是否需要退出VIM呢。当然不需要,我们只需要将VIM丢到后台去执行就可以了。按下ctrl+z就可以了。就想下面一样。

Skill 用户 杀掉这个用户的进程

pgrep 根据特定条件查找PID信息

-P  +父进程(PPID) 可找到此父进程下所有子进程
-l 列出进程名称
-u  +用户名 查找以这个用户身份运行的进程
-t 根据进程所在的终端进行查找

 

 

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

Kill -18 5695 还原这个进程

top | htop 命令 

《top详解》

# top -b -n 2 >/tmp/top.txt    执行两次top并输出到文本中

htop下载:

 

如果我想把后台的工作移到前台来,比如刚才的VIM操作,查找完毕继续编辑文档。这就要用到fg命令

大家好,这次给大家介绍的是liunx下的进程的管理,恩,,进程这个东西,怎么形容呢,其实进程就是开启的程序。比如windows下开启一个程序就会有一个进程,linux下也一样,但是liunxi下可以实现一个程序有多个进程。大家慢慢体会吧。

父/子进程

PPID与PID:

登录Linux后我们会取得一个bash的shell,而Linux之所以被称为一个“多用户环境”,就是因为每个人登陆后取得的shell的PID不同。

而用这个bash提供的接口去运行另一些指令程序,也会触发成为PID。他们之间这种“我中产生了你”关系,我们就称作父进程和子进程。

[root@centos1 ~]# bash   # bash下再触发一个新bash
[root@centos1 ~]# ps -l  # 在这个bash下再触发ps命令
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 126053 126049  0  80   0 - 27117 wait   pts/3    00:00:00 bash
0 S     0 127272 126053  0  80   0 - 27117 wait   pts/3    00:00:00 bash
4 R     0 127289 127272  0  80   0 - 27033 -      pts/3    00:00:00 ps

 

父子进程互相间的调用:

                                   
 永利官网ylg客户端 2

 

常驻系统中的进程:

有很多触发的指令程序都是执行完就很快终止了的,但系统总要有一些服务各用户任务的功能需要一直常驻在内存中运行。我们称之为“服务(daemon)”

系统的服务非常的多, 不过主要大致分成系统本身所需要的服务,例如crond
、 atd、rsyslogd 等等。还有一些则是负责网络连接的服务,例如 Apache,
named, postfix, vsftpd等等

 

root@zhf-linux:/home/zhf/zhf#
jobs

本文出自 “history_xcy”
博客,请务必保留此出处

echo $$  获得当前bash的PID

[root@centos1 software]# echo $$
126053
[root@centos1 software]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 R     0   2861 126053  0  80   0 - 27026 -      pts/3    00:00:00 ps
4 S     0 126053 126049  0  80   0 - 27118 wait   pts/3    00:00:00 bash
[root@centos1 software]# top -d 2 -p 126053
top - 09:30:04 up 4 days, 10:00,  3 users,  load average: 0.00, 0.00, 0.00
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.5%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004412k total,   894620k used,   109792k free,   117988k buffers
Swap:  1022968k total,    17988k used,  1004980k free,   244112k cached
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                              
126053 root      20   0  105m 2052 1552 S  0.0  0.2   0:00.41 bash   

 

在前面执行ps
-l的时候有两个参数priority和nice值。这两个值的作用在于调节进程的执行顺序。如果进程都是在一个队列里面进行,每个都按照顺序来,虽然很公平,但是会带来一个问题,比如有3个进程,进程1是紧急的进程,进程2和3是一般的进程而且进程2和进程3的工作很耗时间。如果按照顺序来,紧急的进程1就有可能半天得不到调度。紧急的任务就一直卡在那里。为了解决这个问题,引入了进程的优先级参数,也据是priority和nice值。PRI越低就代表越优先的意思。那么nice值是起什么作用的呢。

[[email protected]
~]# nice -n -20 httpd 手动启动进程 UID为多少

Job Control

jobs  查看job

-l:列出PID
-s:仅列出在后台处于暂停状态stop的job
-r:仅列出在后台处于运行状态run的job

 &  将job放到后台去“执行”

[root@centos1 ~]# tar -zvpcf /tmp/py3.tar.gz /py3 >/tmp/log.txt 2>&1 &
[1] 128365
[root@centos1 ~]# echo "aa"    #128365这个job放到后台后,我们可以在前台做任意别的job
aa
[1]+ Done tar -zvpcf /tmp/py3.tar.gz /py3 > /tmp/log.txt 2>&1 #当128365执行完它会出现Done

Ctrl+z   将当前的job放到后台中“暂停”Stopped

[root@centos1 ~]# vim  ~/.bashrc
^Z
[1]+ Stopped                 vim ~/.bashrc
[root@centos1 ~]# find / -print
^Z 
[2]+  Stopped                 find / -print

[root@centos1 ~]# jobs -l
[1]- 128722 Stopped vim ~/.bashrc
[2]+ 128754 Stopped find / -print

bg  把后台Stopped的job重新再后台Running起来(bg=backgroup)

[root@centos1 ~]# find / -perm +7000 >/tmp/text.txt
^Z
[3]+ Stopped find / -perm +7000 > /tmp/text.txt

[root@centos1 ~]# jobs; bg %3; jobs
[1]- Stopped vim ~/.bashrc
[2] Stopped find / -print
[3]+ Stopped find / -perm +7000 > /tmp/text.txt
[3]+ find / -perm +7000 > /tmp/text.txt &
[1]+ Stopped vim ~/.bashrc
[2] Stopped find / -print
[3]- Running find / -perm +7000 > /tmp/text.txt &

fg  将后台Stopped的job放回到前台(fg=foregroup)
fg %jobnumber

[root@centos1 ~]# jobs -l
[1]- 128722 Stopped vim ~/.bashrc
[2]+ 128754 Stopped find / -print
[root@centos1 ~]# fg %1 
#回到vim ~/.bashrc的界面
# ctrl+z
[1]+ Stopped vim ~/.bashrc
[root@centos1 ~]# jobs -l
[1]+ 128722 Stopped vim ~/.bashrc
[2]- 128754 Stopped find / -print

kill  管理后台当中的job

-9    强制删除一个job

-15  以正常的程序方式终止一个job

[root@centos1 ~]# jobs -l    
[1]+ 128722 Stopped                 vim ~/.bashrc
[2]  128754 Stopped                 find / -print
[root@centos1 ~]# kill %2 ; jobs
[1]+  Stopped                 vim ~/.bashrc
[2]   Stopped                 find / -print
[2]   Terminated              find / -print
[root@centos1 ~]# jobs -l       
[1]+ 128722 Stopped                 vim ~/.bashrc
[root@centos1 ~]# kill -9 %1 ; jobs 
[1]+  Stopped                 vim ~/.bashrc
[1]+  Killed                  vim ~/.bashrc

 

64 bytes from
www.sina.com.cn (218.30.66.248): icmp_seq=3 ttl=54 time=29.8
ms

Top

priority/niceness

1.优先顺序(priority):内核控制;动态变化;用户不能直接调整大小;值越小越先被cpu执行。

2.优先级(niceness):固定值;可被修改;和pr有关系:pr(新)=pr(老)+nice;
                                     
 root用户可设置的niceess值范围(-20—19)、自己或他人的进程、随意调整;
                                     
 普通用户可设置的niceness值范围(0—19)、自己的进程、只能调高;

3.Nice优先级调整和设置:
  (1) nice –10
  (2) renice -10
  (3) 在top中按r

 

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

NIU慢k思值)最大是-20 最小是19

ps 命令

ps aux输出信息:

[root@centos1 ~]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   8863   8859  0  80   0 - 27117 wait   pts/0    00:00:00 bash
4 R     0   9090   8863  0  80   0 - 27035 -      pts/0    00:00:00 ps
[root@centos1 ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  19360  1376 ?        Ss   Aug27   0:09 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Aug27   0:00 [kthreadd]

 

F process flags进程标识,说明权限

4:表示权限为root

1:表示此进程仅能进行复制而服务执行

USER 进程属于哪个用户  
PID 进程PID  
%CPU 进程使用掉的CPU资源百分比  
%MEM 进程占用掉的物理内存百分比  
VSZ 进程使用掉的虚拟内存量(KB)  
RSS 进程占用掉的固定内存量(KB)  
TTY 进程是在哪个终端机上运行的

pts/n:远程登录则显示动态终端窗口

pts/0:表示网络连接进主机的进程

tty1-tty6:表示本机登入的进程

?:表示与终端机无关

STAT 进程当前的状态

D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process

<:高优先级
n:低优先级
s:包含子进程
+:位于后台的进程组

START 进程被触发启动的时间  
TIME 进程实际使用cpu的时间  
PRI priority 进程执行优先顺序 数值越小表示优先级越高
NI Nice    进程执行优先级  
SZ 此进程用掉多少内存  
WCHAN 表示此进程是否运行中 -:表示正在运行中
ADDR 表示进程在内存的哪一个部分 -:running进程
COMMAND/CMD 所执行的命令command和参数arguments <defunct>:表示此进程为僵尸进程

 

实例1:显示所有进程信息
[root@centos1 ~]# ps -A
   PID TTY          TIME CMD
     1 ?        00:00:09 init
     2 ?        00:00:00 kthreadd
     3 ?        00:00:00 migration/0
     4 ?        00:00:01 ksoftirqd/0
     5 ?        00:00:00 migration/0
     6 ?        00:00:03 watchdog/0

实例2:显示指定用户信息
[root@centos1 ~]# ps -u root
PID TTY TIME CMD
1 ? 00:00:09 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:01 ksoftirqd/0
5 ? 00:00:00 migration/0
6 ? 00:00:03 watchdog/0

实例3:显示所有进程信息,包括命令行,常配合grep使用
[root@centos1 ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Aug27 ? 00:00:09 /sbin/init
root 2 0 0 Aug27 ? 00:00:00 [kthreadd]
root 126304 1523 0 02:35 ? 00:00:00 sshd: root@notty
root 126308 126304 0 02:35 ? 00:00:00 /usr/libexec/openssh/sftp-server
postfix 130724 1614 0 08:12 ? 00:00:00 pickup -l -t fifo -u

[root@centos1 ~]# ps -ef |grep ssh
root 994 126053 0 08:30 pts/3 00:00:00 grep ssh
root 1523 1 0 Aug27 ? 00:00:00 /usr/sbin/sshd
root 126049 1523 0 02:34 ? 00:00:01 sshd: root@pts/3

实例4:仅查看自己的bash相关的进程
[root@centos1 ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 R 0 1076 126053 0 80 0 – 27025 – pts/3 00:00:00 ps
4 S 0 126053 126049 0 80 0 – 27118 wait pts/3 00:00:00 bash

实例5:列出正在内存中的所有进程
[root@centos1 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19360 1376 ? Ss Aug27 0:09 /sbin/init
root 2 0.0 0.0 0 0 ? S Aug27 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Aug27 0:00 [migration/0]
root 126053 0.0 0.2 108472 2056 pts/3 Ss 02:34 0:00 -bash
root 126304 0.0 0.4 100376 4044 ? Ss 02:35 0:00 sshd: root@notty
root 126308 0.0 0.2 57708 2252 ? Ss 02:35 0:00 /usr/libexec/openssh/sftp-
postfix 130724 0.0 0.3 81380 3408 ? S 08:12 0:00 pickup -l -t fifo -u

 

root@zhf-linux:/home/zhf/zhf# find / -name
test1.txt

任务和进程是两码事

-p:
指定某些PID来进行查看监控。

[[email protected]
~]# vi & 把vi 丢到后台去

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

ctrl+z
把这个任务或进程暂停自动丢入后台

3681 (process ID) old
priority 0, new priority -5

[[email protected]
~]# jobs 查看

root@zhf-linux:/home/zhf#
nice -n -5 vi &

Kill %1 杀掉第一个任务

[1]+ Done ping -c 10
www.sina.com.cn

Skill -9 pts/2 杀掉 pts/2上的用户

已有的进程可以通过renice的方法进行调整。下面的就是将su进程的nice调整为-5

ps aux | grep httpd
查看httpd进程的个人信息

采用如下的命令 -9
强制中断当前的终端。执行后当前终端就会退出

Pstree 显示树形指令

首先来看下查看当前终端有关的进程:ps
-l

Killall httpd 进程的名字) 杀掉httpd
所有进程

0 R 0 3803 3682 0 80 0 –
1869 – pts/2 00:00:00 ps

PID值 用户 优先级别 虚拟内存大小
实际内存大小 共享内存大小 状态 占CPU的百分比 占内存百分比 累积CPU时间
命令

64 bytes from
www.sina.com.cn (218.30.66.248): icmp_seq=10 ttl=54 time=33.8
ms

fg &1 把第一个后台任务拿到前台来处理

4 S 0 3245 3233 0 80 0 –
2079 wait pts/2 00:00:00 su

Kill 5695 让
他自杀默认的是15号进程)这个进程)

0 R 0 3823 3682 0 80 0 –
1869 – pts/2 00:00:00 ps

Top 动态进程

[1]+ Terminated find /
-name test1.txt

进程

进程的执行顺序:

因为PRI是内核动态调整的,我们是无法去修改的。如果要调整进程的优先级,只能通过nice值来进行调整。PRI(new)=PRI(old)+nice。当nice为负值的时候,就是降低PRI值,优先级就会提高。反之则是降低

最大的父进程是 init

PING www.sina.com.cn
(218.30.66.248) 56(84) bytes of data.

bg &1 把第一个后台任务到后台执行

UID/PID/PPID:分别是用户ID,进程PID,以及父进程PID

4224这个进程本身的UID号)

root 7 0.1 0.0 0 0 ? S
08:39 0:01 [rcu_sched]

[1] 657

3246

Jobs 查看后台

查看进程有2种方法:1
查看当前终端有关的进程 2
查看系统所有的进程

Kill -19 5695
暂时这个进程让用户无法操作)

64 bytes from
www.sina.com.cn (218.30.66.248): icmp_seq=6 ttl=54 time=29.3
ms

[[email protected]
~]# renice -2 4224 更改正在运行的进程 -2要改成的优先级别)

4 S 0 3682 3681 0 80 0 –
1497 wait pts/2 00:00:00 bash

Ps –ef 查看详细的进程

4 S 0 3224 3223 0 80 0 –
1502 wait pts/5 00:00:00 bash

q推出 ?帮助

64 bytes from
www.sina.com.cn (218.30.66.248): icmp_seq=7 ttl=54 time=28.1
ms

< >翻页

root@zhf-linux:/home/zhf/zhf# kill
%1

[1]+ Stopped vi

64 bytes from
www.sina.com.cn (218.30.66.248): icmp_seq=5 ttl=54 time=28.4
ms

发表评论

电子邮件地址不会被公开。 必填项已用*标注