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

1、查看进程

第一种,用w查看进程:

[[email protected] ~]# w
 05:22:23 up 14 min,  2 users,  load average: 0.00, 0.02, 0.06
USER     TTY      FROM              [email protected]   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排序

[[email protected] ~]# 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进程的优先级为5nice --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:用交互的方式建立任务

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

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

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

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

wall "hello, I‘m wall"

之后建立任务:

[[email protected] ~]# 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号各执行一次
时间: 2024-10-13 01:01:01

Linux学习笔记十二:进程管理的相关文章

Linux学习笔记&lt;十二&gt;——磁盘管理

设备文件: b:块文件,按块为单位,随机访问的设备,如磁盘 c:字符文件,按字符为单位,访问有先后次序的线性设备,如键盘 ls -l查看设备文件,原显示大小的列改显示为 主设备号(major number) 用于标识设备类型 次设备号(minor number) 用于标识同一种类型的不同设备 mknod 创建块或字符设备文件 mknod [OPTION]... NAME TYPE [MAJOR MINOR] -m MODE 指定权限 例子:mknod -m 640 mydev c 66 0 硬盘

Linux学习笔记&lt;十六&gt;——进程管理

Process/Thread Model Stopped:进程收到停止信号后停止运行 Ready:正在运行 Executing正在运行队列中等待 Uninterruptible sleep:不可终端指的不是CPU不响应外部硬件的中断,而是进程不响应异步信号 Interruptible sleep:等待某些事件的发生而被挂起 Zombie:进程已终止,但进程的进程控制块(以及少数资源)没被回收 程序优先级,数字越小,越优先,更优先获得运行的机会,获得更多的CPU运行时间 0-99:内核控制 100

linux学习笔记--程序与进程管理

.工作管理 1.前台程序放后台程序  命令后 加  & 2.任务执行时将前台任务任务放到后台中并[暂停]  ctr + z 3.jobs 观察后台工作状态 及多少任务在执行,可以通过 help jobs查看jobs选项 [[email protected] ~]# jobs [-lrs] 参数: -l :除了列出 job number 之外,同时列出 PID -r :仅列出正在背景 run 的工作: -s :仅列出正在背景当中暂停 (stop) 的工作. 范例: 范例一:观察目前的 bash 当

Linux学习笔记十:软件包管理

在Linux的众多版本中,可以大致分成两个系列,分别是:RedHat系Linux,Debian系Linux.在这两种不同系的Linux中,软件包的管理也是有着一定的区别,但他们的原理都大致相同.这篇笔记将以RedHat系Linux为重点讲解其软件包的管理,并简单介绍Debian系Linux软件包的管理.其大致的结构如下: · RedHat系Linux软件包管理 - 1. 二进制包管理(基于rpm) - 2. 二进制包管理(基于yum) - 3. 源代码包管理 - 4. 脚本安装 · Debian

Linux学习笔记十二周一次课(4月23日)

12.1 LNMP架构介绍 12.2 MySQL安装 进入下载目录cd /usr/local/src 查看已下载的文件ls 查看进程是否运行ps aux | grep mysql 删除安装目录rm -rf /usr/local/mysql 删除服务rm -rf /etc/init.d/mysqld 修改配置文件vim /etc/my.cnf //不修改,保留即可: 进入下载目录cd /usr/local/src wget http://mirrors.sohu.com/mysql/MySQL-5

Linux学习笔记十二周二次课(4月24日)

12.6 Nginx安装 cd /usr/local/src wget http://nginx.org/download/nginx-1.8.0.tar.gz tar zxvf nginx-1.8.0.tar.gz ./configure --prefix=/usr/local/nginx make && make install 查看配置文件是否有错 -t /usr/local/nginx/sbin/nginx -t 启动脚本编辑: vim /etc/init.d/nginx //复制

Linux学习笔记十二周三次课 (4月25日)

12.10 Nginx访问日志 vim /usr/local/nginx/conf/nginx.conf //搜索log_format $remote_addr //客户端P(公网IP) $http_x_forwarded_for //代理服务器的IP $time_local //服务器本地时间 $host //访问主机名(域名) $request_uri //访问的url地址 $status //状态码 $http_referer //referer $http_user_agent //us

Linux学习笔记十二周四次课(4月26日)

12.13 Nginx防盗链 防盗链,就是禁止其他网址链接到本网站图片文本等资源: vim /usr/local/nginx/conf/vhost/test.com.conf //server中添加以下信息 ---------------------------------------------------------------------------------- location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jp

Linux学习笔记十二周五次课(4月27日)

12.17 Nginx负载均衡 代理服务器代理多个WEB即为均衡,dig命令可以查看域名对应IP地址,安装dig命令为#yum install -y bind-utils 例如#dig qq.com vim /usr/local/nginx/conf/vhost/load.conf //写入如下内容 ------------------------------------------------------------------------- upstream qq { ip_hash; //