zoukankan      html  css  js  c++  java
  • 解决nohup: 忽略输入并把输出追加到"nohup.out"或者nohup: 忽略输入重定向错误到标准输出端

    nohup启动脚本的时候,没有指定输出路径,默认使用当前目录的nohup.out

    例如下面这句就是默认使用nohup.out作为输出文件:
    nohup script.sh &
    改成下面的,则/dev/null作为输出文件(需要了解linux输出重定向):
    nohup script.sh >/dev/null 2>&1 &

     

    解决nohup: 忽略输入并把输出追加到"nohup.out"或者nohup: 忽略输入重定向错误到标准输出端

    解决方法:

    执行nohup java -jar do_iptable.jar & 运行jar会提示:nohup: 忽略输入并把输出追加到"nohup.out"

    执行nohup java -jar do_iptable.jar >/dev/null  & 运行jar会提示:nohup: 忽略输入重定向错误到标准输出端

    修改运行方式为nohup java -jar do_iptable.jar >/dev/null 2>&1 &即可。

    Linux下script命令录制、回放和共享终端操作

    [日期:2018-09-04] 来源:cnblogs.com/f-ck-need-u  作者:骏马金龙 [字体:  ]
     

    另一篇终端会话共享的文章:Linux终端会话实时共享(kibitz)

    使用script命令录制,使用scriptreplay播放录制的操作。共享终端的操作,则需要使用命名管道来实现。

    1.1 录制

    [root@xuexi ~]# cd /tmp

    [root@xuexi tmp]# script -t 2> timing.log -a output.session  # 开始录制
    Script started, file is output.session[root@xuexi tmp]# ls                # 执行一个操作:命令ls
    abc.sh  ab.sh  index.html  lost+found  output.session  scriptfifo  test  test1  timing.log  vmware-root

    [root@xuexi tmp]# cd /tmp/test      # 再执行一个操作:命令cd[root@xuexi test]# exit  # 结束录制
    exit
    Script done, file is output.session

    其中"-t 2> timing.log"是要回放的必须选项,不加"2>"将导致开启录制后的任何输入都是乱码状态,不加"-t timing.log"将不能使用scriptreplay来回放。timing.log记录的是每个时间段输入了多少字符。通过timing.log和output.session配合可以实现回放。

    注意点是,录制前保证timing.log和output.session是空文件,否则将导致回放时操作不一致。

    1.2 回放

    [root@xuexi test]# scriptreplay timing.log output.session

    如果觉得回放的速度过慢(录制时有些地方停顿,比如输入了一个命令后,隔了一段时间才输入另一个命令,这段时间对于回放来说显得慢很正常),可以修改timing.log文件。这个文件中分两个字段,第一个字段记录的是从上次输出后到该次输出的时间间隔,第二个字段是从output.session中读取的字符数。要修改回放速度,只需将第一个字段较长的间隔改短一点就可以。但是不应该改的太短,否则回放速度过快。我觉得将间隔较长的改成0.3-0.7秒,效果还不错。

    [root@xuexi ~]# cat timing.log
    0.117244 16
    0.007955 1
    0.298074 1      # 此处将原来的2.298074改为0.3秒
    0.216628 1
    0.092781 1
    0.081659 1
    0.083258 1
    0.419445 1
    0.314128 1
    0.100810 1
    0.083998 30
    0.491283 1
    0.266129 1  # 此处原来也是2.266129秒,显然经过一次命令输出之后停顿了2秒多
    0.099767 1
    0.127625 1
    0.078809 1
    0.181493 1
    0.147795 1
    0.115808 1
    0.077416 1
    0.274658 1
    0.257042 1
    0.524460 4
    0.297133 38
    0.458018 1
    0.416350 1
    0.187270 1
    0.125467 1
    0.100756 8

    1.3 终端屏幕分享

    通过管道来传输信息实现。需要一个pipe文件,并在需要展示的终端打开这个管道文件。

    在终端1(作为主终端,即演示操作的终端)上使用mkfifo创建管道文件。

    [root@xuexi tmp]# mkfifo scriptfifo

    [root@xuexi tmp]# ll scriptfifo
    prw-r--r-- 1 root root 0 Sep 26 13:04 scriptfifo  # 权限位前面的第一个p代表的就是pipe文件。

     

    在终端2上打开pipe文件。

    [root@xuexi ~]# cat /tmp/scriptfifo

     

    在终端1上使用script -f开始记录操作,之后的操作将会分享在终端2上。

    [root@xuexi tmp]# script -f scriptfifo

    使用exit即可停止分享并退出记录行为。

    [root@xuexi tmp]# exit
    exit
    Script done, file is scriptfifo

    在被分享终端上参与分享状态后将不能执行任何操作,执行的操作会被记录下来,并在主终端停止分享后自动执行。

    需要注意的是,只能给一个会话共享会话终端。如果多个会话 cat scriptfifo ,会导致共享切开显示在多个不同会话上。

    Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

  • 相关阅读:
    Docker-CentOS系统安装Docker
    Docker-准备Docker环境
    Docker系列-文章汇总
    商品订单库存一致性问题的思考
    java模板、工厂设计模式在项目中的重构
    2018Java年底总结
    java的AQS中enp没有同步代码块为啥是原子操作
    java使用awt包在生产环境docker部署时出现中文乱码的处理
    初探装饰器模式
    开灯问题
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/14371263.html
Copyright © 2011-2022 走看看