• Linux中后台执行的方法nohup和screen


    1. nohup命令

    nohup的用法简单,配合 & 使用。

    nohup <command> [argument…] &

    比如:

    nohup wget  https://downloads.apache.org/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz &

    nohup可以忽略掉程序的SIGHUP信号,所以即使退掉当前bash,也不会把进程kill掉, 如果程序的标准输出/标准错误是终端,nohup默认将其重定向到nohup.out文件。值得注意的是nohup命令只是使得程序忽略SIGHUP信号,还需要使用标记&把它放在后台运行。

    2. screen命令

    screen #进入会话

    screen -ls  #list所有会话

    screen -r [会话ID]. #重新连接到该会话

    ctrl + a + d #退出当前会话。

    使用流程如下: 

    1. screen #进入一个会话
    2. 执行命令
    3. ctrl + a +d 退出这个会话,反回到主bash中
    4. 如果想再次进入这个会话,screen -ls 查找会话id
    5. screen -r [会话ID] #进入该会话

    三、screen命令使用方法?

    1、常用的使用方法

    用来解决文章开始我们遇到的问题,比如在安装lnmp时。

    1.1 创建screen会话

    可以先执行:screen -S lnmp ,screen就会创建一个名字为lnmp的会话。 VPS侦探 https://www.vpser.net/

    1.2 暂时离开,保留screen会话中的任务或程序

    当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)

    1.3 恢复screen会话

    当回来时可以再执行执行:screen -r lnmp 即可恢复到离开前创建的lnmp会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen会列出当前存在的会话列表,如下图:

    11791.lnmp即为刚才的screen创建的lnmp会话,目前已经暂时退出了lnmp会话,所以状态为Detached,当使用screen -r lnmp后状态就会变为Attached,11791是这个screen的会话的进程ID,恢复会话时也可以使用:screen -r 11791

    1.4 关闭screen的会话

    执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。VPS侦探 https://www.vpser.net/

    2、远程演示

    首先演示者先在服务器上执行 screen -S test 创建一个screen会话,观众可以链接到远程服务器上执行screen -x test 观众屏幕上就会出现和演示者同步。

    3、常用快捷键

    Ctrl+a c :在当前screen会话中创建窗口
    Ctrl+a w :窗口列表
    Ctrl+a n :下一个窗口
    Ctrl+a p :上一个窗口
    Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

    课外阅读:也可以参考该文章

  • 相关阅读:
    如何编写CMakeLists.txt
    C++11 condition_variable
    TCP/IP 收发数据
    CLion 远程开发和调试C/C++代码
    Python unittest mock 在哪里打patch
    MVCC版本链
    数据无法修改?解密MVCC原理
    MVCC ReadView介绍
    正则表达式备忘(基于JavaScript)
    《C+编程规范 101条规则、准则与最佳实践》笔记
  • 原文地址:https://www.cnblogs.com/shanghai1918/p/13187257.html
Copyright © 2020-2023  润新知