zoukankan      html  css  js  c++  java
  • nohup保证程序后台运行

    前言

    我们运行某些命令的时候,它会默认在前台执行。如果要进行其他操作,则需要先停掉此程序。然后就蛋疼了。

     

    解决

    碰到这种情况,我们可以使用"nohup"命令和"&"命令符来进行后台执行。

     

    例如,我要启动mysql进程,命令如下:

    mysql -uroot -p --defaults-file=/etc/my.cnf
    

    它会在前台运行,我要进行其他操作,则需要ctrl+c退出来再做其他事。这时我为了保证其在后台运行,就可以在命令的头部加"nohup",尾部加"&"来保证其后台运行,命令如下:

    nohup mysql -uroot -p --defaults-file=/etc/my.cnf &
    

    如果有报错,它会在命令执行后1-2s报出来;如果没有,它会报出一个进程号。

     

    无论执行是否成功,你都可以进行其他操作。

     

    这时,命令执行的命令会导入到一个叫nohup.out的文件中。这个nohup.out路径有优先级排序,分别是:

    1. 命令中指定的位置。例如:

      nohup mysql -uroot -p --defaults-file=/etc/my.cnf >> /var/log/nohup.out &
      

      则命令执行的文件将会被重定向到/var/log/nohup.out。

     

    1. 本目录下。
      若不指定重定向文件,在当前用户有本目录写权限的情况下,则nohup会默认在本目录下创建nohup.out文件。

     

    1. 本用户的家目录下。
      若不指定重定向文件,在当前用户有本目录写权限的情况下,则nohup会默认在本用户的家目录下创建nohup.out文件
       

    同时,频繁使用nohup会使得nohup.out文件很容易变大,所以需要定期清理。可使用

     > /path-to-nohup/nohup.out  #将空格写入nohup.out文件中,以达到清理目的。
    

    来清理。

    后记:

    至于更加高级的操作,我也还在思考做。以后贴文细讲。

  • 相关阅读:
    jquery toggle(listenerOdd, listenerEven)
    struts quick start
    hdu 1518 Square (dfs)
    hdu 2544 最短路 (最短路径)
    hdu 1754 I Hate It (线段树)
    hdu 1856 More is better (并查集)
    hdu 1358 Period (KMP)
    hdu 2616 Kill the monster (DFS)
    hdu 2579 Dating with girls(2) (bfs)
    zoj 2110 Tempter of the Bone (dfs)
  • 原文地址:https://www.cnblogs.com/young233/p/12066693.html
Copyright © 2011-2022 走看看