Linux学习笔记十二:进程管理

1、查看进程

第一种,用w查看进程:

[root@localhost ~]# w
 05:22:23 up 14 min,  2 users,  load average: 0.00, 0.02, 0.06
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
chenyr   tty1     :0               05:08   14:38   2.35s  0.23s pam: gdm-passwo
chanshuy pts/0    192.168.230.1    05:09    0.00s  0.15s  0.21s sshd: chanshuyi

其中:

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

PCPU:CPU执行程序耗费的时间

WHAT:用户正在执行的操作

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

from:显示用户从何处登录系统,“:0”的显示代表该用户是从X Window下,打开文本模式窗口登录的

IDLE:用户限制的时间。

如果要查看某个用户的信息,可以用“w [用户名]”命令查看。

第二种,用ps命令查看:

格式:ps [参数]

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

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

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

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

-l   长格式显示

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

# ps  //查看隶属于自己的进程
#ps -le  //查看所有进程的详细信息
#ps --sort pid  //列出隶属于自己的进程并按pid排序

[root@localhost ~]# ps -aux | head -5
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19360  1536 ?        Ss   05:07   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    05:07   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    05:07   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    05:07   0:00 [ksoftirqd/0]

其中PID:进程号,PPID:父进程的进程号,TTY:进程启动的终端

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

NI:进程优先级

TIME:进程自启动以来启动CPU的总时间

COMMAND/CMD:进程的命令名

USER:用户名

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

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

注:用pstree命令可以以树状查看所有进程的信息

第三种,用pgrep命令:

用pgrep命令可以查看某服务所启动的所有进程的PID,如:

pgrep httpd //查看httpd启动的所有进程的PID

第四种:实时查看进程信息

格式:top   

参数(交互参数):

d 指定刷新的时间间隔

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

u 查看指定用户的进程

k 中止执行中的进程

h or ? :获得帮助

r 重新设置进程优先级

s 改变刷新的时间间隔

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

2、关闭进程

第一种,关闭某个进程:

格式:kill [参数] [进程PID]

参数:-9 强制关闭  -1 重启进程 (更多的参数可以用kill -l 查看参数)

范例:

kill 333  //关闭PID为333的进程
kill -1 333 //重启333进程

第二种,关闭某个服务的所有进程:

格式:killall/pkill [进程名]  

范例:

killall httpd  //关闭httpd服务
pkill httpd  //关闭httpd服务

3、指定进程优先级

第一种,指定程序优先级 nice :

格式:nice [-n] [进程名]    其中-n中的n表示优先级

范例: MARK检查命令是否正确

nice -5 httpd   //指定httpd进程的优先级为5
nice --5 httpd //指定httpd进程的优先级为-5

第二种,改变一个正在运行的进程的优先级  renice:

格式:renice n pid

范例:

renice -5 777  //指定PID为77的进程的优先级为-5

4、nohup命令的使用

nohup命令可以让用户退出登陆后仍旧继续执行,nohup命令会将执行后的数据信息和错误信息默认存储到文件nohup.out中。

命令格式:nohup [执行的命令] &

范例:

nohup find / -name init* > /root/find.init2014 &

5、进程的挂起和恢复

进程挂起:Ctrl + Z

进程终止:Ctrl + C

查看被挂起的进程:jobs

将进程恢复到前台继续运行:fg [编号]  (通过jobs查看得到的编号)

将进程恢复到后台继续运行:bg [编号]  (通过jobs查看得到的编号)

补充实例:MARK

6、计划任务

计划任务一般有三种:at、batch、cron。at安排作业在某一时刻执行一次,batch安排作业在系统附在不重时执行一次,cron安排周期性运行的作业。

第一种:at 只执行一次的作业

格式:at [-f 文件名] [时间]   建立一个任务

at -d [序号] 或 atrm [序号]   删除一个任务

at -l 或 atq  查看队列中的任务

其中时间的格式有绝对计时法和相对计时法两种:

范例1:用交互的方式建立任务

[root@localhost ~]# at 22:02
at> wall hello
at> <EOT>
job 5 at 2014-12-03 22:02
[root@localhost ~]# atq
5       2014-12-03 22:02 a root

这种方式增加的任务的脚本会存放在:/var/spool/at 目录下。

范例2:用文件的方式建立任务

先建立一个文件/etc/at.script,增加如下内容:

wall "hello, I‘m wall"

之后建立任务:

[root@localhost ~]# at -f /etc/at.script now+1 minutes
job 8 at 2014-12-03 22:12

第二种:batch命令 

batch命令会在系统附在较轻(负载在0.8以下)时执行此任务。

batch命令用得比较少,就不做更多的介绍了。

第三种:crontab命令

命令:crontab [参数]

参数:-l  显示当前的crontab  

-r 删除当前的crontab(会删除整个crontab文件)

-e 使用编辑器编辑当前的crontab文件

其中crontab文件的格式为:minute hour day-of-month month-of-year day-of-week commands

crontab文件中每一行为一个crontab任务。

建立一个crontab任务只需要用“crontab -e” 命令编辑crontab文件,插入要定时执行的语句即可:

23 22 3 12 * wall hello  //在12月3日的22:23分执行这条命令

crontab文件存放在/var/spool/cron下,以用户的名字命令。如root用户的crontab文件为:/var/spool/cron/root。

时间的书写上,如果不限制则写“*”。

如果要表示连续,如1-3月,则在对应的位上用横杠“-”连接,如:“1-3”。

要表示并列,如2、3月,则在对应的位上用“,”连接,如:“2,3”。

如果要每分钟,每小时,每月,每年执行一次,则用“/"连接。

范例:

*/1 * * * * wall hello  //表示每分钟执行一次
*/2 * * * * wall hello  //表示每2分钟执行一次(其他小时、月、年类似)

* * 1-3 * * wall hello //表示每年的1-3号各执行一次
* * 1,3 * * wall hello //表示每年的1号,3号各执行一次

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。