Linux之nohup命令

一、nohup命令功能簡介bash

[root@vms002 opt]# whatis nohup
nohup (1)   - run a command immune to hangups, with output to a non-tty #運行一個不受hangups影響的命令,輸出到一個非tty
nohup (1p)  - invoke a utility immune to hangups   #調用不受hangups影響的實用程序

    nohup命令能夠將以忽略掛起信號的方式運行起來,被運行的程序的輸出信息將不會顯示到終端。不管是否將nohup命令的輸出重定向到終端,輸出都將附加到當前目錄下的nohup.out文件中。若是當前目錄的nohup.out文件不可寫,輸出重定向到$HOME/nohup.out文件中。若是沒有文件能建立或打開以用於追加,那麼command參數指定的命令不可調用。若是標準錯誤是一個終端,那麼把指定的命令寫給標準錯誤的全部輸出做爲標準輸出重定向到相同的文件描述符。
ssh

    nohup是永久執行的意思,而 & 是指在後臺運行。就是指,用nohup運行的命令或程序能夠永久的執行下去,和用戶終端沒有關係,例如咱們斷開ssh鏈接都不會影響他的運行。
ide

    注意:當咱們用 & 運行的程序是守護進程時,咱們斷開終端後這個守護進程會繼續在後臺運行。若是這個進程不是守護進程時,當咱們斷開終端後,這個進程也跟着斷開中止運行了。
spa

二、nohup語法orm

nohup [命令]
nohup [選項]

三、nohup選項進程

選項 說明
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出

四、實例it

    使用nohup命令時,若是指定了輸出文件,那麼輸出信息則輸出到指定的文件中。若是沒有指定輸出文件,則輸出信息會輸出到當前目錄中的nohup.out文件中。
io

    1)使用nohup命令查看當前目錄下的文件,並把輸出結果重定向到ls.log文件中。
table

[root@vms002 opt]# ls
a_  aa.txt  a^x.txt  rh  rh134  tmp
[root@vms002 opt]# nohup ls >> ls.log
nohup: 忽略輸入重定向錯誤到標準輸出端
[root@vms002 opt]# ls
a_  aa.txt  a^x.txt  ls.log  rh  rh134  tmp
[root@vms002 opt]# cat ls.log 
a_
aa.txt
a^x.txt
ls.log
rh
rh134
tmp

    2)使用nohup命令查看當前目錄下的文件,不指定輸出文件,查看輸出結果是否在當前目錄下的nohu.out文件中。class

[root@vms002 opt]# ls
a_  aa.txt  a^x.txt  ls.log  rh  rh134  tmp
[root@vms002 opt]# nohup ls
nohup: 忽略輸入並把輸出追加到"nohup.out"
[root@vms002 opt]# ls
a_  aa.txt  a^x.txt  ls.log  nohup.out  rh  rh134  tmp
[root@vms002 opt]# cat nohup.out 
a_
aa.txt
a^x.txt
ls.log
nohup.out
rh
rh134
tmp

五、總結

    1)nohup命令是永久執行,忽略掛起信號。&是指在後臺運行。

    2)用 & 後臺運行程序時,若是是守護進程,斷開終端則程序繼續運行,若是不是守護進程,斷開終端則程序也會被斷開中止運行。

    3)使用nohup命令時,若是指定了輸出文件,輸出信息則會附加到輸出文件中,若是沒有指定輸出文件,則輸出信息會附加到當前目錄下的nohup.out文件中,若是當前目錄的nohup.out文件不可寫,輸出重定向到$HOME/nohup.out文件中。

相關文章
相關標籤/搜索