linux 测试进程指令 fg bg kill ps jobs ctrl+z ctrl+c

(1) CTRL+Z挂起进程并放入后台
(2) jobs 显示当前控制台中的后台进程的状态

(3) bg %N,这里的N是jobs指令查询到的任务号N:将后台运行暂停的任务号为N的任务,唤醒然后还在后台运行。

(4) fg %N ,将后台运行暂停的任务号为N的任务,唤醒后,切换到前台运行。

(5)kill 进程号  :杀死这个进程,如果他正在运行,会立即被杀死,如果他挂起了,等他被唤醒的时候就杀死他

(6)ps :查看所有运行的进程,ps -u 用户 :查看该用户运行的进程


这里有一段测试代码:

//test.c
#include<stdio.h>
#include<unistd.h>//sleep()头文件


int main()
{
	while(1)
	{
		printf("       -----死循环.ing-----\n");
		sleep(2);
	}
}
编译:

lan@lan:~/桌面/测试$ gcc -o test test.c
运行:

lan@lan:~/桌面/测试$ ./test

按下ctrl+c:终止程序

再次运行:./test

lan@lan:~/桌面/测试$ ./test

然后按下ctrl+z :把./test换到后台并暂停


输入jobs查看后台运行的进程

输入jobs -l:同时查看进程号:


这里的 28371就是./test进程的进程号,可以输入kill 28371杀死这个后台进程,当前现在进程还处于暂停状态还不会被杀死。再次输入jobs -l还是可以显示这个进程的。

等到这个进程28371被唤醒再次运行时,它就会被杀死。继续输入bg %1 唤醒这个进程使得它运行在后台。因为之前已经发送信号(kill 28371)说要杀死这个进程了,现在他一运行就会被杀死,再次输入bg %1 将会无效。

下面测试fg命令:

再次运行./test,将会产生一个新的进程,分配新的进程号。运行之后按下Ctrl+z;同样挂起进程到后台。再次输入jobs -l查看进程号:

可以看到这次已经分配了另一个进程号28447

然后输入fg %1 把后台挂起的进程28447切换到前台并且运行,这是因为又在前台了可以再次按下ctrl+z把这个进程挂起到后台。

输入kill 28447在这个进程被唤醒的时候杀死它

然后输入fg %1 把这个后台挂起的进程切换到前台运行。当然了它一运行就会被杀死!这次就再也无法被唤醒了。

当然kill也能杀死正在运行的进程,而且不用等待进程被唤醒,立马就杀死这个进程

打开个新的终端

旧的终端输入./test再次运行。新的终端输入 ps -u 用户名 | tail    查看该用户运行的进程,并且只显示最后面的10行。

可以看到这个正在运行的新的./test进程,新进程号为28496。

然后再新窗口下输入kill 28496 杀死这正在运行的进程





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值