zoukankan      html  css  js  c++  java
  • nohup 、&、 2>&1 命令分析


    nohup的意思是不间断的运行,&的意思是后台运行,2>&1的意思是标准输出和错误输出都重定向到同一个文件。
    简单地说nohup运行时即使关掉控制台,它该运行还是运行。
    https://blog.csdn.net/liuyanfeier/article/details/62422742讲解的比较透彻,我给他做一点补充
    可以参考https://www.jianshu.com/p/747e0d5021a2

    nohup 命令分析

    先假设一个情况,想要后台运行一个命令怎么办?最好的办法是用&,在命令的结尾加一个&就可以在后台运行了。

    &实例解析

    假设有一个python程序叫做123.py
    代码是这个样子,一直去输出一些东西。

    import time
    a = 1
    while True:
            print("start to print sth")                                                                                                                       
            a+=1
            print("a=%s" %(a))
            time.sleep(2)
    

    如果运行它的话需要python3 123.py,可以把正确的内容重定向到log.txt。这个时候命令就是
    python3 123.py > log.txt

    • 运行后,控制台一直是这个样子,无法进行其他的操作。
    su@DESKTOP-FA1P4IO:~$ python3 123.py >> log.txt
    
    
    • 后面加一个&后就可以进行操作别的东西了。
    suyuesheng@DESKTOP-FA1P4IO:~$ python3 123.py >> log.txt &
    [2] 809
    suyuesheng@DESKTOP-FA1P4IO:~$
    

    但是关闭控制台后,即使python3 123.py >> log.txt &后面有&依然会被终止进程。
    因为关闭终端后会收到挂断信号。nohup就不会收到挂断信号。

    nohup正如名字所声称的,忽略所有发送给子命令的挂断(SIGHUP)信号。
    这样所有发给命令的SIGHUP信号都被忽略,命令就不会收到SIGHUP信号。
    什么是SIGHUP信号呢?
    简单的理解可以是终端结束时,操作系统会发送SIGHUP信号到后台进程。

    • 用nohup是这个样子的
    su@DESKTOP-FA1P4IO:~$ nohup python3 123.py >> log.txt &
    [3] 905
    
  • 相关阅读:
    03 flex布局
    03 BOM
    02 事件高级
    01 DOM
    06 js 作用域 对象
    Springboot连接Greenplum,分页查询
    Vim常用命令
    Windows IntelliJ IDEA 快捷键终极大全
    IDEA构建Maven项目生成的文件说明(.mvn、mvnw、mvnw.cmd、.gitignore、.iml、.idea、pom.xml)
    Linux下的tar压缩解压缩命令详解
  • 原文地址:https://www.cnblogs.com/sogeisetsu/p/11403326.html
Copyright © 2011-2022 走看看