跟系统任务相关的几个命令: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);

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结构,通常把客户端的程序看做前台程序,而服务器端程序看做后台程序。现在的操作系统都是多任务的操作系统,可以同时执行多个程序。前台程序就是你当前正在使用的程序,后台程序就是你开启了以后没有使用但仍在运行的程序。

shell下,进程的前台与后台运行的更多相关文章

  1. Linux执行shell脚本方式及区别&命令后台运行

    Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/

  2. Linux下使用nohup实现在后台运行程序(转)

    相比上一篇http://www.cnblogs.com/EasonJim/p/6833417.html使用screen实现后台运行程序,各有各的好处,多一种选择吧. Linux下一般比如想让某个程序在 ...

  3. screen mac linux下一种让程序后台运行的方法

    1: screen 场景的意思.字面意思就是软件运行在不同场景 (1)创建会话 使用命令“screen -S RunWork”来创建一个screen会话,命令执行之后,就会得到一个新的shell窗口, ...

  4. Python3判断shell下进程是否存在&&启动&&邮件通知

    判断进程是否存在 def isRunning(process_name): try: process = len(os.popen('ps aux | grep "' + process_n ...

  5. shell下root用户切换其他用户运行程序

    工作中,一些程序,需要随机启动,但是不是以root用户运行,于是需要在rc.local中通过shell,从root用户切换到其他用户运行程序,命令如下: su -c 'command' - user ...

  6. linux下如何让控制台程序后台运行

    方法1:./test & 方法2:(./test &) 方法3:nohup 和bg 方法4:screen -mS test /root/test   退出程序需要手动进入screen创 ...

  7. Android 判断APP前台,后台运行

    public void checkAppState() { ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVI ...

  8. Linux 进程后台运行

    Linux 进程后台运行 1.进程在当前终端后台运行.(关闭终端后进程自动退出) sh test.sh & 注:运行进程后跟 “&” 2.进程长期后台运行不受终端关闭影响. nohup ...

  9. linux 后台运行命令 nohup命令

    转载:http://if.ustc.edu.cn/~ygwu/blog/archives/000538.html 2005年04月18日 简单而有用的nohup命令在UNIX/LINUX中,普通进程用 ...

随机推荐

  1. Linux Shell查看磁盘分区,内存使用,CPU使用率

    Linux Shell查看磁盘分区,内存使用,CPU使用率 #!/bin/bash #disk_used_rate Location=/dev/xvdb Disk_Used_Rate=$(df -h ...

  2. 替换应用程序exe图标,主要使用BeginUpdateResource,UpdateResource API函数

    替换应用程序exe图标,主要使用的API函数是BeginUpdateResource(),UpdateResource(),EndUpdateResource()来使用自定义的ico文件类替换exe程 ...

  3. 305. Number of Islands II

    题目: A 2d grid map of m rows and n columns is initially filled with water. We may perform an addLand  ...

  4. CodeForces485B——Valuable Resources(水题)

    Valuable Resources Many computer strategy games require building cities, recruiting army, conquering ...

  5. Hadoop系列

    http://www.cnblogs.com/xia520pi/archive/2012/04/08/2437875.html#2925129 hadoop提供了一个可靠的共享存储和分析系统.HDFS ...

  6. Control character in cookie value, consider BASE64 encoding your value

    这是因为你给Cookie设置了中文的value,比如Cookie c = new Cookie("user", "张三");

  7. 文章投稿 latex 生成 pdf的字体Embeded问题解决(转自兵马俑BBS)

    此法可以把所有字体转为Embedded,先生成*.ps文件,下载ghostscrip8.51和GSView4.7 安装,用gsview4.7转换*.ps->*.pdf,在gsview中File- ...

  8. 《Linux/Unix系统编程手册》读书笔记6

    <Linux/Unix系统编程手册>读书笔记 目录 第9章 这章主要讲了一堆关于进程的ID.实际用户(组)ID.有效用户(组)ID.保存设置用户(组)ID.文件系统用户(组)ID.和辅助组 ...

  9. DBContext

    http://www.entityframeworktutorial.net/EntityFramework4.3/dbcontext-vs-objectcontext.aspx As you hav ...

  10. 转载 近期微博吐槽言论存档,涉及“性能优化”、C++陋习等

    http://blog.csdn.net/solstice/article/details/9923615 近期微吐槽博言论存档,涉及“性能优化”.C++陋习等 写C++程序的几个陋习:class 名 ...