zoukankan      html  css  js  c++  java
  • linux 后台运行进程 fg bg ctrl+z nohup

    fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 命令

    一、&

    加在一个命令的最后,可以把这个命令放到后台执行,如

    watch  -n 10 sh  test.sh  &  #每10s在后台执行一次test.sh脚本

    二、ctrl + z

    可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

    三、jobs

    查看当前有多少在后台运行的命令

    jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

    四、fg

    将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。

    五、bg

    将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。

    六、kill

    • 法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
    • 法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid

    前台进程的终止:Ctrl+c

    七、nohup

    如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:   
    nohup command > myout.file 2>&1 &   
    在上面的例子中,输出被重定向到myout.file文件中。   
    使用 jobs 查看任务。   
    使用 fg %n 关闭。

    只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename 2>&1"来更改缺省的重定向文件名。

    [root@pvcent107 ~]# nohup ping www.ibm.com &
    [1] 3059
    nohup: appending output to `nohup.out'
    [root@pvcent107 ~]# ps -ef |grep 3059
    root      3059   984  0 21:06 pts/3    00:00:00 ping www.ibm.com
    root      3067   984  0 21:06 pts/3    00:00:00 grep 3059
    [root@pvcent107 ~]#
    

     

    如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)

    ps -aux | grep "test.sh"  #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
  • 相关阅读:
    Ubuntu虚拟机磁盘空间不足的解决
    eclipse启动报错 JVM terminated. Exit code=1
    Ubuntu16.04 安装eclipse
    HDU 1710 Binary Tree Traversals(二叉树)
    Ubuntu16.04 搭建伪分布式Hadoop环境
    HDU 1560 DNA sequence(IDA*)
    Go的函数
    Go的包
    Go语言开发环境搭建
    go的循环
  • 原文地址:https://www.cnblogs.com/juandx/p/4839054.html
Copyright © 2011-2022 走看看