zoukankan      html  css  js  c++  java
  • Linux执行后台work相关

    Linux的后台运行、关闭、查看后台任务

    • &
    • ctrl+z
    • jobs
    • fg
    • bg
    • kill
    • nohup
    • setsid
    • disown
    • screen
    1.&

    加在命令的最后,可以把命令放到后台执行:

    watch -n 10 sh test.sh #每10s后台执行一次test.sh脚本
    
    2.ctrl+z

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

    3.jobs

    查看当前有所少在后台运行的命令
    jobs -l选项可显示所有任务的PID,jobs的状态可以是running、stopped、terminated。
    但是如果任务被终止了(kill),shell从当前的shell环境已知的列表中删除任务的进程标识

    jobs命令选项
    -l      列出进程ID及其他信息
    -p      仅列出进程ID
    -n      仅列出自从上次输出状态变化提示后的发生了状态变化的进程
    -r      仅显示运行中的作业
    -s      仅显示停止的作业
    -x      运行命令及其参数,并用新的命令的进程ID替代所匹配的原有作业的进程组ID
    
    4.fg

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

    # jobs -l
    [2] - stopped ....
    [3] + stopped ...
    # fg 2
    
    5.bg

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

    6.kill
    • 1.通过jobs命令查看job号,然后执行kill %num
    • 2.通过ps命令查看job的进程号(pID),然后执行kill pid,前台进程的终止ctrl+c
    7.nohup

    若始终让进程在后台运行,即使关闭当前的终端也执行(&是做不到的),这是需要使用nohup
    此命令可以让退出账户/关闭终端之后继续运行相应的进程。

    nohup ping wwww.baidu.com
    
    8.setsid

    nohup通过忽略HUO信号来使进程中途被中断,但如果我们换个角度思考,若进程不属于接受HUP信号的终端的子进程,setsid就可以说实现

    # setsid ping www.baidu.com
    
    9.disown

    在不停止进程的情况下使提交的命令避免HUP信号的影响

    disown -h jobspec  来使某个作业忽略HUP信号
    disown -ah 来使所有的作业都忽略HUP信号
    disown -rh  来使正在运行的作业忽略HUP信号
    

    注:当使用disown之后,会把目标作业从作业列表中移除,不能再使用jobs查看,但是还可以通过ps -aux查看

    10.screen

    screen提供了ANSI/VT100的终端模拟器,能够在一个真实终端下运行多个全屏的伪终端。screen的参数很多,具有很强大的功能

    screen option
    # screen -dmS session name 来建立一个处于断开模式下的回话
    # screen -list   列出所有会话
    # screen -r session name 重新连接执行会话
    # crtl+a+d 来暂时断开当前会话
  • 相关阅读:
    JAVA入门到精通-第22/23讲-容器、集合类
    JAVA入门到精通-第24讲-容器、集合类
    JAVA入门到精通-第20/21讲-二进制.位运算.位移运算
    JAVA入门到精通-第19讲-多维数组
    JAVA入门到精通-第18讲-排序查找
    JAVA入门到精通-第16讲-数组
    spring demo
    springmvc启动加载指定方法
    Java 日志
    web前端框架
  • 原文地址:https://www.cnblogs.com/l-mac/p/11522468.html
Copyright © 2011-2022 走看看