linux初始化进程ppid号,Linux进程及作业管理

1、内核

内核的功用有进程管理、文件系统、网络功能、内存管理、驱动程序和安全功能。Linux内核存储进程信息的固定格式为task struct,多个任务的task struct组成的链表为task list。

/proc/目录存放内核中的状态信息。可设置内核参数的值从而调整内核运行特性的参数,内核参数存放于/proc/sys/目录下,状态变量用于输出内核中的统计信息或状态信息,仅用于查看信息。

进程文件存放于/proc/# 文件中,#是PID编号。

2、进程

(1)进程创建过程

init进程是初始化进程,第1个进程,负责一切用户空间管理的进程。init由kernel创造,除了init之外,每一个进程都由其父进程创建,用命令fork(),clone()等。

(2)进程优先级

0-139:共140个优先级,其中1-99的优先级为实时优先级,数字越大,优先级越高,100-139的优先级为静态优先级,数字越小,优先级越高。

(3)Nice值

Nice值为-20-19,对应优先级100-139,-20对应100,19对应139,可以通过调整Nice值来改变优先级,普通用户只可以向Nice值高的方向调整,即向进程优先级大(低)的方向调整,管理员不受限制。

(4)进程类型

Linux内核是抢占式多任务的内核。因此进程类型可分为守护进程和前台进程。守护进程(daemon)为在系统引导过程中启动的进程,是跟终端无关的进程,前台进程是跟终端相关,通过终端启动的进程,也可把在前台启动的进程送往后台,以守护模式运行,例如service命令启动进程就可以以后台方式运行。

(5)进程状态

运行态(running),就绪态(ready),睡眠态分为可中断睡眠态(interruptable)和不可中断睡眠态(uninterruptable)停止态(stopped,暂停于内存中,但不会被调度,除非手动启动之)、僵死态(zombie)。

(6)进程的分类

CPU-Bound,CPU密集型,优化性能需要分配CPU时间多些;

IO-Bound,IO密集型,优化性能需要分配优先级高些。

(7)启动进程的方式

系统启动过程中自动启动的进程是与终端无关的进程,用户通过终端启动的进程是与终端相关的进程。

3、进程管理命令

(1)pstree命令

该命令用于显示进程的树状结构。

(2)ps命令

该命令用于显示当前运行进程的快照。

ps [options]:ps命令选项有三种风格:

1 UNIX options, which may be grouped and must be preceded by a dash.

2 BSD options, which may be grouped and must not be used with a dash.

3 GNU long options, which are preceded by two dashes.

选项:

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

x:所有与终端无关的进程;

u:以用户为中心组织进程状态信息显示;

ax:查看系统中的所有进程;

ps ax命令显示结果:带[]的为内核线程;

pstree命令显示结果:大多为进程;

1 常用组合之一:aux

VSZ:虚拟内存集,即占用的虚拟内存大小,即进程在虚拟内存空间中真正用来存储数据的大小。

RSS:Resident Size,常驻内存集,坚决不能放在交换内存的内容。

STAT:

R:running

S:interruptable sleeping

D:uninterruptable sleeping

T:Stopped

Z:zombie

+:前台进程

l:多线程进程

N:低优先级进程

s:session leader 会话领导者,如shell进程

-e:显示所有进程,相当于ax

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

2 常用组合之二:-ef

显示结果:PPID父进程ID,init(PID=1)进程的父进程为PID为0的进程

-F:显示完整格式的进程信息;比-f更加完整的信息;

C: cpu utilization,CPU利用率;

PSR:运行于哪颗CPU之上

-H:以层级结构显示进程的相关信息;

3 常用组合之三:-eFH

4 常用组合之四:-eo, axo

o field1, field2,…:自定义要显示的字段列表,以逗号分隔;

常用的field:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio

ni:nice值;

priority:priority, 优先级;

rtprio:real time priority,实时优先级;

pcpu:cpu利用率;

comm:由哪个程序启动的;

(3)kill

(4)pgrep [options] pattern

该命令用于实现进程过滤。

-u uid:effective user,显示进程以什么用户的身份运行,可以切换;

-U uid:real user,显示以该用户启动的进程,显示指定用户的进程;

-t TERMINAL:与指定的终端相关的进程;

-l:显示进程名;

-a:显示完整格式的进程名;包括进程ID、进程名、参数列表;

-P pid:显示此进程的子进程;仅显示直接子进程,不加选项表示命令中有该字符串的进程;

[root@centos7 ~]# pgrep -U postfix

2308

2309

[root@centos7 ~]# ps aux | grep postfix

root 2254 0.0 0.1 93208 1696 ? Ss 14:04 0:00 /usr/libexec/postfix/master -w

postfix 2308 0.0 0.1 93312 1840 ? S 14:04 0:00 pickup -l -t unix -u

postfix 2309 0.0 0.1 93380 1876 ? S 14:04 0:00 qmgr -l -t unix -u

root 4620 11.0 0.0 112648 952 pts/0 R+ 15:18 0:00 grep --color=auto postfix

(5)pidof命令

该命令用于根据进程名,取其pid,一个进程名对应的pid可能不止一个。

(6)top命令

该命令用于显示Linux进程。

排序方式:

P:以占据CPU百分比排序;

M:以占据内存百分比排序;

T:累积占用CPU时间排序;

首部信息:

uptime信息:l命令开启或关闭,top命令的第一行;

tasks及cpu信息:t命令开启或关闭;

内存信息:m命令开启或关闭;

退出命令:q;

修改刷新时间间隔:s;

终止指定的进程:k;

选项:

-d #:指定刷新时间间隔,默认为3秒;

-b:以批次方式显示;

-n #:显示多少批次;

(7)uptime命令

该命令用于显示系统时间、运行时长及平均负载(过去1分钟、5分钟和15分钟的平均负载)和等待运行的进程队列的长度。

(8)htop命令

安装htop:yum install htop -y

选项:

-d #:指定延迟时间间隔;

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

-s COLUME:以指定字段进行排序;

子命令:

l:显示选定的进程打开的文件列表;

s:跟踪选定的进程的系统调用;

t:以层级关系显示各进程状态;

a:将选定的进程绑定至某指定的CPU核心;

(9)vmstat命令

该命令用于显示虚拟内存统计信息。

vmstat [options] [delay [count]]

procs:

r:等待运行的进程的个数;CPU上等待运行的任务的队列长度;

b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;

memory:

swpd:交换内存使用总量;

free:空闲的物理内存总量;

buffer:用于buffer的内存总量;

cache:用于cache的内存总量;

swap:

si:数据进入swap中的数据速率(kb/s);

so:数据离开swap的速率(kb/s);

io:

bi:从块设备读入数据到系统的速度(kb/s);

bo:保存数据至块设备的速率(kb/s);

system:

in:interrupts,中断速率;

cs:context switch, 上下文切换的速率;

cpu:

us:user space;

sy:system;

id:idle;

wa:wait;

st: stolen;

选项:

-s:显示内存统计数据;

(10)pmap命令

该命令用于查看进程的内存映射。

pmap [options] pid [...]

-x:显示详细格式的信息;

另一种查看方式:cat /proc/PID/maps。

(11)glances命令

该命令是一个跨平台的基于光标的监控管理工具,是bash shell内建命令。

常用选项:

-b:以Byte为单位显示网卡数据速率;

-d:关闭磁盘I/O模块;

-m:关闭mount模块;

-n:关闭network模块;

-t #:刷新时间间隔;

-1:每个cpu的相关数据单独显示;

-o {HTML|CSV}:输出格式;

-f /PATH/TO/SOMEDIR:设定输出文件的位置;只需指到文件所在目录;

C/S模式下运行glances命令:

服务模式:glances -s -B IPADDR

IPADDR:本机的某地址,用于监听;

客户端模式:glances -c IPADDR

IPADDR:是远程服务器的地址;

(12)dstat命令

该命令是一个精巧的系统资源统计工具。

dstat [-afv] [options..] [delay [count]]

常用选项:

-c, --cpu:显示cpu相关信息;

-C #,#,…,total

-d, --disk:显示磁盘的相关信息

-D sda,sdb,…,total

-g:显示page相关的速率数据;

-m:Memory的相关统计数据;

-n:Interface的相关统计数据;

-p:显示process的相关统计数据;

-r:显示io请求的相关的统计数据;

-s:显示swapped的相关统计数据;

–top-cpu:显示最占用CPU的进程;

–top-io:最占用io的进程;

–top-mem:最占用内存的进程;

–top-lantency:延迟最大的进程;

(13)kill命令

该命令用于向进程发送信号,以实现对进程管理的功能。

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

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

1)信号的数字标识;

2)信号的完整名称;

3)信号的简写名称;

向进程发信号:kill [-s signal|-SIGNAL] pid...

常用信号:

1)SIGHUP:无须关闭进程而让其重读配置文件;

2)SIGINT:终止正在运行的进程,相当于Ctrl+c;

9)SIGKILL:杀死运行中的进程;进程强行杀死,正在写未关闭的文件可能会损坏;

15)SIGTERM:终止运行中的进程;

18)SIGCONT:继续;kill -18 49266 将停止的进程继续运行,可以是在后台;

19)SIGSTOP:停止,将进程送入后台运行;相当于Ctrl+Z。

(14)killall命令

该命令用于通过进程名杀死进程。

killall [-SIGNAL] program

例:killall httpd

(15)调整进程优先级

可通过nice值调整的优先级范围:100-139,分别对应于:-20-19。

进程启动时,其nice值默认为0,其优先级是120,仅管理员可调低nice值。

nice命令:以指定的nice值启动并运行命令。

# nice [OPTION] [COMMAND [ARGU]...]

选项:

-n NICE

renice命令:调整运行中的指定进程的NICE值。

# renice [-n] NICE PID...

查看Nice值和优先级命令:ps axo,pid,ni,priority,comm。

4、作业管理

(1)作业

前台作业(foregroud):通过终端启动,且启动后会一直占据终端;

后台作业(backgroud):可以通过终端启动,但启动后即转入后台运行(释放终端)。

(2)如何让作业运行于后台?

1)运行中的作业,Ctrl+z可送往后台。

注意:送往后台后,作业会转为停止态;

2)尚未启动的作业,# COMMAND &,可在运行时在后台运行。

注意:此类作业虽然被送往后台,但其依然与终端相关,如果终端进程终止,与终端相关的进程也会终止,如果希望把送往后台的作业剥离与终端的关系,则把作业转为与终端无关的方式:# nohup COMMAND &。

5、作业管理命令

(1)查看所有的作业

# jobs

(2)可实现作业控制的常用命令

# fg [[%]JOB_NUM]:把指定的作业调回前台;

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

# kill %JOB_NUM:终止指定的作业;作业加%,进程不加%;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值