zoukankan      html  css  js  c++  java
  • Linux进程的前后台切换

    一、Linux前后台切换的相关命令:
     
    1、&  在命令的后面加上这个符合,让命令进程在后台运行 

        例如:

        #ping 127.0.0.1 &        // 此时命令ping 127.0.0.1的进程是在后台运行的

    2、Ctrl + Z  使用这个组合键可以将一个正在前台执行的进程放到后台,并且暂停

        例如:

        #ping 127.0.0.1    

        按住Ctrl + Z组合键        // 此时ping 127.0.0.1进程被挂起到后台并暂停

    3、jobs  查看当前有多少在后台运行的进程
        选项:-l  显示工作的PID

        例如:

        #ping 127.0.0.1

        按住Ctrl + Z 

        #jobs -l  

        [1]+ 4403 停止 ping 127.0.0.1          // 1是工作号,"+"号代表最近一个放入后台的工作,也是工作恢复时默认的工作。

    4、fg %n  让后台运行的进程n到前台来运行(n为工作号)
      将后台中的命令调至前台继续运行
      如果后台中有多个进程,可以用fg %n将指定的进程调到前台,%n是通过jobs命令查到的后台正在执行的命令的工作号。
        例如:
        #fg 1             // 将作业号为1的后台进程放到前台运行,"%"可省略

        

    5、bg %n 让进程n到后台去运行
      将一个在后台暂停的命令,变成继续执行
      如果后台中有多个进程,可以用bg %n将指定的进程调到后台,%n是通过jobs命令查到的后台正在执行的命令的工作号。
        例如:

        # jobs 
        [1]+ Stopped ping 127.0.0.1             // 有一个在后台被暂停的进程,其工作号为1

        #bg 1            // 将作业号为1的后台暂停进程放到后台运行,"%"可省略
     
     
     6、Ctrl + C   终止前台运行的进程任务,但是不能终止后台进程
     
     
     
    二、实例:
     
    假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,这时就可以将这个程序放到后台去运行:
     
    1、我们用vi来写一个C程序(hello.c),这个程序的功能是每隔3秒输出一个数字:
     1 #include<stdio.h>
     2 #include<unistd.h>
     3 
     4 int main()
     5 {
     6     int i=0;
     7     while(i<10000)
     8     {
     9         printf("%d
    ",i++);
    10         sleep(3);
    11     }
    12     return 0;
    13 }

    2、编译:

    # gcc -o hello hello.c

    3、运行:

    #./hello             // 运行后每隔3秒向屏幕终端输出一个数字

    4、按住Ctrl + Z 把它放到后台并暂停

    [1]+ Stopped ./hello         // 会出现这个提示

    5、查看后台进程

    # jobs
    [1]+ Stopped ./hello           // 1是这个进程的工作号

    6、让它在后台继续运行

    # bg 1              // 让工作号为1的进程在后台运行

    #jobs

    [1]+ Running ./hello &        // 状态为变为Running,若此时按住Ctrl+C将无法终止该进程

     
    7、把它切换到前台继续运行
    #fg 1               // 放到前台后可以按住Ctrl+C来终止进程
     
     
  • 相关阅读:
    Navicat Preminm12 连接Oracle数据库失败或闪退
    kafka tool报错:Error fetching datea.Offset out of range
    kafka修改默认端口号
    post发送请求,body格式
    一、线程基础、线程之间的共享和协作(1)
    jQuery(三) 动画操作一
    jQuery(二) 选择器
    jQuery(一)
    javascript面向过程与面向对象
    鼠标跟随动画: event
  • 原文地址:https://www.cnblogs.com/wuqianling/p/5370442.html
Copyright © 2011-2022 走看看