• screen和nohup后台跑常驻进程常用命令


    screen的使用

    参考链接:https://www.iteye.com/blog/justdo2008-1888772

    1、新建一个screen窗口

    screen -S <你自己的窗口名>
    

    2、退出窗口,程序转入后台运行

    Ctrl+A+D
    

    3、重进窗口

    screen -r <你自己的窗口名>
    

    4、查询所有运行在后台的进程

    screen -ls
    

    5、进程结束,杀死进程

    kill <进程号>
    

    6、窗口假死,强制连接,踢掉原来的连接

    screen -D -r <进程号>
    

    nohup的使用

    参考链接:https://blog.csdn.net/weixin_42840933/article/details/85780125

    https://blog.csdn.net/maihilton/article/details/82781897

    1、单独使用nohup,关闭shell进程后,还能在后台执行,使用ctrl+c进程消失

    nohup <你需要运行的命令>
    

    2、单独使用&,关闭shell进程,运行的进程消失,ctrl+c进程仍然存在

    <你需要跑的进程的命令> &
    

    3、nohup + &,关闭shell进程和ctrl+后台运行的进程都还在,并且把代码中间过程的输出日志都会写到运行该进程当前目录下的nohup.out文件中

    nohup <需要运行的进程命令> &
    

    4、将输出日志重定向到一个文件中

    nohup <需要运行的进程命令>  >> train.log &
    

    5、2>&1,将错误输出重定向到标准输出中

    0:stdin标准输入,用户键盘输入的内容
    1:表示stdout标注输出,输出到显示屏的内容
    2:表示stderr标准错误,报错内容
    2>&1中>后面不能有空格,表示将错误内容重定向输入到标准输出中去
    
    # 这样在日志文件中就会记录运行错误信息
    nohup <需要运行的进程命令>  >> train.log 2>&1 &
    

    6、将日志信息显示在屏幕上

    tail -f train.log
    

    7、暂停该进程,并放到后台运行

    ctrl+Z
    

    8、退出该进程,但是同时使用了nohup+&,即使使用了ctrl+c,进程依然会在后台继续运行

    ctrl+c
    

    9、查看当前终端后台运行中的进程任务,换了终端或者断开连接重新打开一个终端,就不能查看了

    jobs -l
    

    10、查看瞬时进程的动态,也可以看到别的终端后台进程

    #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
    ps -aux
    #e:列出程序时,显示每个程序使用的环境变量 f:全格式,用ASCII字符显示树状结构,表达程序之间的相互关系
    ps -ef 
    #对于平时使用时简单地查看进程情况来看,两个命令是差不多的
    

    使用grep查找你需要查看的内容(限定用户名)

    ps -ef|grep <用户名>
    

    限定运行进程的命令

    ps -ef|grep <命令中的特定名称>
    

    11、强制删除进程<参数-9表示强制删除>

    kill -9 <进程号>
    

    12、前台后台进程相互切换与控制

    #fg命令
    #如果后台只有一个进程,直接使用fg就把命令调到前台执行了
    #如果后台有多个进程,需要先使用job查看jobnumber,再使用fg <jobnumber>
    
    #bg命令
    #将一个后台暂停的程序,变成在后台继续执行
    #同理,多个进程使用bg <jobnumber>
    

    13、当我们运行的进程,输出日志比较多时,重定向的日志文件(train.log和nohup.out)过大,容易导致磁盘空间不足问题,如何保证不停止进程和不删除日志文件(后续还有输出要写进来)非常重要。解决此问题需要使用Linux中的/devwud/null文件和重定向

    参考链接:https://www.jianshu.com/p/986dffe63a9d

    cp /dev/null train.log
    cat /dev/null > train.log
    

    将/dev/null文件复制或者重定向到你的文件,你文件中原来所有的信息都会变得无影无踪,我们以此来删除日志文件中的历史信息。再删除之前的历史日志之前,我们将原先的日志文件下载到本地,方便查看之前的进程运行情况,同时我们保留了train.log文件,以便于之后的输出写入到此文件中。

  • 相关阅读:
    [年报阅读] 中国银行业监督管理委员会2009年报(1)
    囧事
    [论文收集] 2009年|国内计算机方向三大学报|Web Service相关论文
    打开那扇窗
    初生牛犊不怕虎
    忘却的纪念
    Java JDBC学习
    Java数组学习
    如何清晰地思考:近一年来业余阅读的关于思维方面的知识结构整理(附大幅思维导图)
    管理类文件
  • 原文地址:https://www.cnblogs.com/Vicky1361/p/14490007.html
Copyright © 2020-2023  润新知