zoukankan      html  css  js  c++  java
  • 转:Linux实时将所有输出重定向到文件

    转自

    Linux的重定向机制十分好用,我们经常需要在服务器上挂起一个服务程序,然后将该程序的所有输出重定向到某个文件,这样即使我们注销了用户,程序依然在linux服务器上运行着。

    但是重定向的输出经常无法实时刷新到指定文件中,当我们调试程序时,这将给我们带来巨大的困扰。其实只需要关闭重定向输出的缓冲,即可实现实时刷新的效果。

    命令如下:

    unbuffer nohup command > file.out 2>&1 &

    上面的unbuffer命令需要额外安装expect-devel,用来实时刷新。

    nohup命令用来忽略所有挂断(SIGHUP)信号,让你的程序即使在用户注销后依然继续运行。

    command是任何一段你想要执行的shell命令。

    > file.out 代表将command运行结果重定向到当前目录下的file.out文件中(如果要每次运行的结果追加到file.out后面,可以用>>而不是>)。

    2 >&1表示将标准错误输出cerr的所有输出也都重定向到标准输出cout中,这样file.out中就会记录command命令运行过程中所有标准输出。

    最后一个&表示后台运行该command。

  • 相关阅读:
    CentOS 6、CentOS 7系统设置防火墙及使用区别
    HAProxy 使用小记
    oracle快速创建用户、imp/exp导入导出dmp文件
    $@和$*的作用和区别
    根据命令行输出key-value键值对
    mysql备份
    mysql大表归档后清理数据
    redis数据修复记录-1
    redis数据修复记录-2
    调整mysql路径
  • 原文地址:https://www.cnblogs.com/TMatrix52/p/7463315.html
Copyright © 2011-2022 走看看