一、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文件中。