Linux进程管理

Posted Super_J

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux进程管理相关的知识,希望对你有一定的参考价值。

1.ps

(1)最常使用的是ps -le或者ps -aux ,配合上grep查看某个进程的状态,比如ps -aux | grep pts

(2)ps -u 可以查看隶属于自己的进程的详细信息

(3)ps -uU username 可以查看指定用户的进程

 

其中,PID是进程号,PPID是其父进程的进程号,TTY是进程启动的终端,STAT是进程当前状态:

S:休眠状态

D:不可中断的休眠状态

R:运行状态

Z:僵死状态

T:停止状态

NI:进程优先级(优先级最高是-20,如果你设置的优先级是-500之类的,都会变成-20,最低是19)

nice -n command  指定一个程序的优先级,如nice --5 myprogram

renice -n pid          指定一个进程的优先级,如renice -5 3232

 

2.kill

(1)关闭进程:kill  进程号

(2) 强行关闭:kill -9 进程号

(3)重启进程: kill -1 进程号

(4)查看kill命令的各个信号数字:kill -l 可以列出来

(5)结束所有进程:killall

(6)按进程名称杀死进程:pkill

 

 3.  CTRL + Z是挂起进程,就是暂停这个进程。

        jobs可以查看被挂起的进程(包括后台执行,暂停的进程)。

 以下转自:http://blog.csdn.net/shinezhang86/article/details/48491755      

linux提供的fg和bg命令,可以让我们轻松调度正在运行的任务
 
  假如你发现前天运行的一个程序需要很长的时间,但是需要干前天的事情,你就可以用ctrl-z挂起这个程序,然后可以看到系统的提示:
[1]+ Stopped /root/bin/rsync.sh
 
此时进程处于停止状态, 我们可以让它在后台继续执行
#bg 1
[1]+ /root/bin/rsync.sh &
 
用jobs命令查看任务
#jobs

[1]+ Running /root/bin/rsync.sh &

 
把它调回到前台运行
#fg 1
/root/bin/rsync.sh
 这样,你这控制台上就只有等待这个任务完成了。
 
fg、bg、jobs、&、 ctrl+z都是跟系统任务有关的,学会了相当的实用
 
一、&最经常被用到
这个用在一个命令的最后,可以把这个命令放到后台执行
 
二、ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停
 
三、jobs
查看当前有多少在后台运行的命令
 
四、fg
将后台中的命令调至前台继续运行
如果后台有多个命令,可以用fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
 
五、bg
将一个在后台暂停的命令,变成继续执行
如果后台有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

 

 4 计划任务:

at:        安排作业在某一时刻执行

batch: 安排作业在系统负载不重的时候执行一次

cron:      安排周期性运行一次的作业

at:

at -d id    删除指定id的计划任务

at -l         查看队列中的任务

 

at 命令指定时间的方式:

绝对时间:hh:mm MM/DD/YY    at  10:23 03/21/2018

相对时间: at now +n minutes/hours/days    如 at now +5 minutes,at 5pm +3 days    三天后的五点执行

 

 

 

当at执行完,会显示今天有几个计划任务,对应的第几个就是计划任务的id,直接用at -d id 就可以删除还未执行的计划任务。

 

batch 使用方法和at一模一样,只是在执行之前会检测一下系统负载,如果在0.8以下就可以执行,否则不执行

crontab 是周期执行任务,注意:command必须用绝对路径!

crontab -e

分钟         小时          天           月          星期           命令/脚本

*                   *             *             *              *                command    任意时刻都发生

*/2                *              *             *             *                command    每个小时的2分都执行一次

*                   11        1-3           2,5        *                 command    2月和5月的1到3号的每天11十一点执行一次

注意:星期用0-6表示。

 

以上是关于Linux进程管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 内核Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )

Linux性能及调优指南(翻译)之Linux进程管理

linux进程管理

Linux进程管理专题

linux进程管理

Linux 进程管理 进程优先级管理