linux进程和计划任务管理

程序和进程的关系

进程查看

ps-aux a:显示终端上所有的进程 u:列出进程的用户 x:显示进程的详细信息

ps -elf

-e:显示所有进程,而不仅仅是与终端会话相关的进程。

-l:以长格式显示进程信息。

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

top动态查看进程信息

第一行:任务队列信息

第二行:进程信息

Tasks 总进程数

running 正在运行的进程数

sleeping 休眠的进程数

stopped 中止的进程数

zombie 僵死的进程数

第三行:cpu信息

第四行为内存的信息

total 总内存空间

free 空闲内存

used 已用内存

buff/cache 物理内存和交换内存的缓冲区总和

第五行为交换空间的信息

total 总交换空间

free 空闲交换空间

used 已用交换空间

avail Mem 可用物理空间

进程信息区各列解释:

PID 进程id

USER 进程所有者的用户名

PR 优先级 --系统优先级

NI 谦让度值。负值表示高优先级,正值表示低优先级 --人为设置的优先级

VIRT 进程使用的虚拟内存总量,单位kb

RES 进程使用的物理内存大小,单位kb SHR 共享内存大小,单位kb

S 进程状态

%CPU 上次更新到现在的CPU时间占用百分比

%MEM 进程使用的物理内存百分比 TIME+ 进程使用的CPU时间总计,单位1/100秒

COMMAND 命令名/命令行

top常用命令

h或者?:帮助

M:按内存的使用排序

P:按cpu使用排序

N:以PID的大小排序

:向后

z:彩色 Z:设置彩色,数字调整

僵尸进程

父进程先结束,子进程,这个时候子进程就会变成一个僵尸进程。

子进程在结束的时候,父进程已经不再了,而且父进程也没有收回子进程的资源,子进程也会成为一个僵尸进程。

解决办法:只有重启,不能强制结束(kill)

模拟一个僵尸进程
wait.c    #僵尸进程的脚本
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>

int main(int argc, char **argv)
{
	pid_t pid;

	pid = fork();
	if (pid == 0) {	 // child
		printf("child pid = %d\n", getpid());
		printf("in child...\r\n");
		sleep(2);
	} else if (pid > 0) {  // father
		sleep(10); /* 子进程 2s 钟后提前结束,等待父进程回收其资源,在这期间,子进程处于僵尸状态 */
		wait(NULL);
	}

	return 0;
}

yum -y install gcc  #C语言环境

gcc wait.c -o wait.out
./wait.out

查看进程树

pstree命令

以树形结构列出进程信息

-a 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示

-c 不使用精简标示法

-G 使用 VT100 终端机的列绘图字符

-h 列出树状图时,特别标明现在执行的程序

-H 此参数的效果和指定 -h 参数类似,但特别标明指定的程序

-l 采用长列格式显示树状图

-n 用程序识别码排序。预设是以程序名称来排序

-p 显示进程 id

-u 显示进程所属用户

-U 使用 UTF-8 列绘图字符

-V 显示版本信息

查看进程所属的线程:

[root@localhost ~]# pstree -p 2543 #只显示线程 httpd(2543)─┬─httpd(2545) ├─httpd(2546) ├─httpd(2547) ├─httpd(2548) └─httpd(2549)

[root@localhost ~]# pstree -up 2543 #显示线程的用户 httpd(2543)─┬─httpd(2545,apache) ├─httpd(2546,apache) ├─httpd(2547,apache) ├─httpd(2548,apache) └─httpd(2549,apache)

进程终止

我们经常会用到kill命令去杀死一个进程,但是有时会出现kill不成功的现象,这是就要用到kill -9。 之所以这两个命令会有区别是因为所发送的信号(Signal)是不同的。默认情况下kill命令的参数为-15。 kill -15代表的信号为SIGTERM,这是告诉进程你需要被关闭,请自行停止运行并退出; 而kill -9代表的信号是SIGKILL,表示进程被终止,需要立即退出; 因此kill -9表示强制杀死该进程,这个信号不能被捕获也不能被忽略。

kill -9

kill只是传递信号,-9强制结束

计划任务管理

at命令

定时任务crontab命令

删除是全删除

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值