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文件中,以达到清理目的。
    

    来清理。

    后记:

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

  • 相关阅读:
    根据用户输入的时间查询那天的数据
    动软 生成 linq相关DAO
    pdf 移除密码 去除水印 批量去除水印 编辑文字 批量替换文字
    利用OCR识别扫描的jpg、tif文件的文字
    jstat命令详解
    IDEA自动编译设置
    IntelliJ IDEA:Field injection is not recommended
    阿里巴巴Druid数据库连接池配置详解及使用
    com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver的区别
    Java对元与分的金额的转换
  • 原文地址:https://www.cnblogs.com/young233/p/12066693.html
Copyright © 2011-2022 走看看