shell下任务切换命令
2016-01-06 14:16
288 查看
跟系统任务相关的几个命令:fg、bg、jobs、&、ctrl+z
1. & 最经常被用到
这个用在一个命令的最后,可以把这个命令放到后台执行
2. ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停
3. jobs
查看当前有多少在后台运行的命令
4. fg
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
5. bg 将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
1. jobs列举出后台作业信息。([作业号] 运行状态 作业名称)
2. ctrl+z 将任务放到后台去,并暂停;
3. bg <%int> 将后台任务唤醒,在后台运行;
4. fg <%int> 将后任务的程序放到前台;
1. ctrl+z 将任务放到后台去,并暂停.
主进程waitpid(pid,&status,WUNTRACED)时,子进程
退出时,父进程被唤醒
2. 将后台任务唤醒,在后台运行;
kill(pid,SIGCONT);
3. 将后台运行的程序放到前台;
kill(pid,SIGCONT);
waitpid(pid,&status,WUNTRACED);
1. 解释程序前台运行与后台运行的区别?
答:前台程序与用户直接对话;后台程序则间接地为前台程序提供支持,一般来说是为前台程序提供所需要的资源。后台程序既可以直接与前台程序进行对话,也可以使用中间程序作为媒介。通常把用户正在操作的程序称为前台程序,而用户没有操作但也在运行的程序(如系统服务)称为后台程序.
命令解释程序创建一个后台进程时,它在发出此进程命令后,
并在接收其他命令之前,不用等待这个进程结束。
例如:
$ddd &
而前台就要等待,直到进程结束为止。
例如:
$ddd
Ctrl-C就结束ddd。
前台程序和终端关联,后台程序不受终端控制。
广义上说,前台程序/后台程序并不是一个很明确的概念。如果是C/S结构,通常把客户端的程序看做前台程序,而服务器端程序看做后台程序。现在的操作系统都是多任务的操作系统,可以同时执行多个程序。前台程序就是你当前正在使用的程序,后台程序就是你开启了以后没有使用但仍在运行的程序。
1. & 最经常被用到
这个用在一个命令的最后,可以把这个命令放到后台执行
2. ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停
3. jobs
查看当前有多少在后台运行的命令
4. fg
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
5. bg 将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
1. jobs列举出后台作业信息。([作业号] 运行状态 作业名称)
2. ctrl+z 将任务放到后台去,并暂停;
3. bg <%int> 将后台任务唤醒,在后台运行;
4. fg <%int> 将后任务的程序放到前台;
1. ctrl+z 将任务放到后台去,并暂停.
主进程waitpid(pid,&status,WUNTRACED)时,子进程
退出时,父进程被唤醒
2. 将后台任务唤醒,在后台运行;
kill(pid,SIGCONT);
3. 将后台运行的程序放到前台;
kill(pid,SIGCONT);
waitpid(pid,&status,WUNTRACED);
void fg(char *p) { int pid=0; if(p!=NULL) { pid=atol(p); kill(pid,SIGSTOP); kill(pid,SIGCONT); waitpid(pid,NULL,NULL); pid_jobs[jobs_num--]=0; } else printf("error \n"); return 0; } void bg(char *p) { int pid=0; if(p!=NULL) { pid=atol(p); kill(pid,SIGCONT); pid_jobs[jobs_num--]=0; } else printf("error \n"); return 0; } //可见,后台运行与前台运行的区别只在于前台运行等待子进程的退出而阻塞父进程操作。而后台运行时,可以在父进程中输入命令继续其他操作。本质上没有区别,都是给子进程发送SIGCONT信号。
http://blog.chinaunix.net/u3/94039/showart_1893558.html
---------------------------
1. 解释程序前台运行与后台运行的区别?
答:前台程序与用户直接对话;后台程序则间接地为前台程序提供支持,一般来说是为前台程序提供所需要的资源。后台程序既可以直接与前台程序进行对话,也可以使用中间程序作为媒介。通常把用户正在操作的程序称为前台程序,而用户没有操作但也在运行的程序(如系统服务)称为后台程序.
命令解释程序创建一个后台进程时,它在发出此进程命令后,
并在接收其他命令之前,不用等待这个进程结束。
例如:
$ddd &
而前台就要等待,直到进程结束为止。
例如:
$ddd
Ctrl-C就结束ddd。
前台程序和终端关联,后台程序不受终端控制。
广义上说,前台程序/后台程序并不是一个很明确的概念。如果是C/S结构,通常把客户端的程序看做前台程序,而服务器端程序看做后台程序。现在的操作系统都是多任务的操作系统,可以同时执行多个程序。前台程序就是你当前正在使用的程序,后台程序就是你开启了以后没有使用但仍在运行的程序。
相关文章推荐
- android wifi 无线调试
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- BGP邻居协商过程
- BGP边界网关协议
- shell字符串操作详解
- Shell中删除某些文件外所有文件的3个方法
- Ruby中执行Linux shell命令的六种方法详解
- VB使用shell函数打开外部exe程序的实现方法
- Shell编程的一些知识集合
- Shell中的for和while循环详细总结
- 什么是Shell?Shell脚本基础知识详细介绍
- Shell脚本中引用、调用另一个脚本文件的2种方法
- Shell脚本解压rpm软件包
- Linux Shell 数组建立及使用技巧
- Shell脚本实现复制文件到多台服务器的代码分享
- Shell脚本实现批量替换文件内容