解決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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM