您的位置:首页 > 运维架构 > Linux

linux进程管理

2015-05-24 12:00 127 查看


linux之进程管理详解

|-进程管理

进程常用命令

|- w查看当前系统信息

|- ps进程查看命令

|- kill终止进程

|- 一个存放内存中的特殊目录/proc

|- 进程的优先级

|- 进程的挂起与恢复

|- 通过top命令查看进程

计划任务

|- 计划任务的重要性

|- 一次性计划at和batch

|- 周期性计划crontab

常用进程命令

w 查看当前系统信息

w命令,我在之前的章节用曾用过,当时是查看当前用户信息,当然也可以查看到系统相关的信息。

作用:查看当前系统活动摘要。

[root@bogon cron]# w

14:48:39 up 2:46, 1 user, load average: 0.00, 0.01, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/1 192.168.203.1 12:27 0.00s 0.17s 0.02s w

w显示信息的含义:

JCPU: 以终端代号来区分,该终端所有相关的进程的进程执行时,所消耗的CPU时间会显示在这里

PCPU: cpu执行程序消耗的时间

WHAT: 用户下在执行的操作

load average :分别显示系统在过去1、5、15分钟内的平均负载程度。

FROM: 显示用户从何处登录系统,":0"的显示代表该用户时人X Windows下,打开文本模式窗口登录的

IDLE: 用户闲置的时间,这是一个计时器,一旦用户执行任何操作,该计时器便会被重置

查看个别用户信息:w [用户名]

[root@localhost ~]# w root

23:32:01 up 52 min, 1 user, load average: 0.00, 0.00, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/1 192.168.203.1 22:53 0.00s 0.10s 0.01s w rootps进程查看命令

进程查看命令:ps

常用选项:

-a:显示所有用户的进程

-u:显示用户名和启动时间

-x:显示 没有控制终端的进程

-e:显示所有进程,包括没有控制终端的进程

-l:长格式显示

-w:宽行显示,可以使用多个w进行加宽显示

应用实例:

ps 查看隶属自己的进程

root@fnngj-virtual-machine:~# ps

PID TTY TIME CMD

1370 pts/0 00:00:00 bash

3185 pts/0 00:00:00 ps

root@root:~# ps -l

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

4 S 0 5941 5801 4 80 0 - 1882 wait pts/2 00:00:00 bash

4 R 0 6000 5941 0 80 0 - 1121 - pts/2 00:00:00 ps

看一下上面的选项都指的什么

PID : 进程号

PPLD: 父进程的进程号

TTY : 进程启动的终端

STAT : 进程当前状态(S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止)

NI : 进程优先级

TIME: 进程自从启动以后启用CPU的总时间

COMMAND/CMD:进程的命令名

USER: 用户名

%CPU: 占用CPU时间和总时间的百分比

%MEM: 占用内存与系统内存总量的百分比

实列:

ps -u or -l 查看隶属于自己进程详细信息

root@root:~# ps -u or -l

ps -le or -aux 查看所有用户执行的进程的详细信息

root@root:~# ps le or -aux

ps -aux --sort pid 可按进程执行的时间、PID、UID等对进程进行排序

root@root:~# ps -aux --sort pid

ps -uU fnngj 查看某个用记启动的进程

root@root:~# ps -uU fnngj

ps -le | grep init 查看指定进程信息

root@root:~# ps -le | grep init

kill终止进程

在winddow下面,我们要结束一个进程,最简单的方式就是关闭这个程序,相应的进程也会随之结束,遇到不能关闭的情况。会打开任务管理器结果掉。那么在linux下如果做呢?我们可以使用kill命令来终止进程。

kill -l 显示所有kill命令编号的代表含义 其中9 代表KILL

kill -s 9 [进程号] (强行关闭)

kill -9 [进程号] (强行关闭)

上面的两种形式都可以强行关闭进程。

重启进程:

有时候我们需要把进程重新启动一下,可以下面的命令完成。

kill -1 [进程号] (重启进程)

root@root:~# kill -1 3567 重启PID为3567的进程

关闭图形程序:

关闭图形程序: xkill

当你在终端下输入这个命令时,你的鼠标会变成一个小叉子,你只去点你想要关闭的窗口就可以关闭了

其它:

结束所有进程: killall

查找服务进程号: pgrep [服务名称]

关闭进程: pkill [进程名称]

通过top命令查看进程

top命令与前面介绍的ps命令相似,已经介绍了ps,为什么还要top?top有它自己的优点呢。它比ps显示的信息更详细。而且是动态的噢,信息是在不断变化的噢!

[root@bogon ~]# top

常用选项:

d : 指定刷新的时间间隔

c : 显示整个命令而不仅仅显示命令名

在命令运行的时候按键盘d,会出现如下提示要求你输入刷新的间隔时间

Change delay from 3.0 to: 10(秒)

常用命令:

u : 查看指定用户的进程

k : 终止执行中的进程

h or ? 获得帮助

r: 重新设定进程优先级

s: 改变刷新的时间间隔

W: 将当前设置写入~/.toprc文件中

这里不细讲了,感兴趣的可以用 man top 命令查看top的详细帮助。

[root@bogon
~]# at now+5 minutes

at>

我们定的时间是5分钟之后,现在可以在at下面输入各种任务,保存!5分钟之后执行;不过,我们需要注意,在用命令时最好写命令的绝对路径,为了安全。

[root@bogon ~]# at now+5 minutes

at> /usr/bin/wall < /etc/motd 做一个广播,把etc/motd 文件广播出去

at> 可以继续写其它的计划

at> <EOT>

job 2 at 2012-05-20 13:43 ctrl+d保存计划并退出

是否还担心我们的计划是否启动,通过下面两个命令查看at进程是否正常启动

[root@bogon test]# at -l

3 2012-05-20 13:57 a root

[root@bogon test]# atq

3 2012-05-20 13:57 a root

如果真的没有启动的话,可以通过手工方式重新启动一下

[root@bogon ~]# /etc/rc.d/init.d/atd start

删除at计划任务

[root@bogon test]# at -d

查看at计划任务

[root@bogon test]# ls /var/spool/at/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: