怎麼讓 Linux 進程在後臺運行?

1. 命令簡介

nohup 的作用可以將程序以忽略掛起信號(SIGHUP)的方式運行。常見的用法是和 & 命令一同使用,將命令放置到後臺運行,即使終端掛掉,進程會忽略掛起信號,繼續運行。

將程序放到後臺運行,一般有兩種方式:

(1)command &:後臺運行,關掉終端會停止運行。

(2)nohup command & :後臺運行,關掉終端也會繼續運行。

「注意:」

(1)如果使用 nohup 執行程序未顯示進行標準輸出重定向,則標準輸出默認重定向當前工作目錄的 nohup.out 文件中。如果當前工作目錄的 [`nohup.out`](http://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247539795&idx=2&sn=42fec97b57d339b55c1e3c66d1624eff&chksm=eb50d965dc275073becd2ebffe18b70960f347a3ee83a070933fb8ee8776f21b7a250ba2a398&scene=21#wechat_redirect) 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。如果沒有文件能創建或打開用於追加,那麼 command 參數指定的命令不可調用。

(2)如果標準錯誤未顯示重定向,那麼標準錯誤默認重定向到與標準輸出相同的文件。

2. 命令格式

nohup COMMAND [ARGS]
nohup OPTION

3 選項說明

--help
 顯示幫助信息並退出
--version
 顯示版本信息並退出

4. 常用示例

(1)使用nohup 命令提交作業,那麼在缺省情況下該作業的所有輸出都被重定向到一個名爲nohup.out的文件中,除非另外指定了輸出文件。

nohup ./test.sh &

(2)標準輸出與標準錯誤輸出重定向。

nohup ./test.sh > test.log 2>&&

(3)指定輸出文件, 輸出被重定向到 output.txt 文件中

[deng@itcast ~]$ nohup bash a.sh &> error.txt
[deng@itcast ~]$

注意:

1)2>&1 標識標準錯誤輸出重定向等同於標準輸出重定向,即標準錯誤輸出也重定向到文件 test.log;

2)& 命令是命令放在後臺執行,需要放在命令的最後面。

另外,關注公衆號 Java 技術棧,在後臺回覆:面試,可以獲取我整理的 Linux 系列面試題和答案,非常齊全。

原文鏈接:https://blog.csdn.net/K346K346/article/details/79985071

版權聲明:本文爲 CSDN 博主「戀喵大鯉魚」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/C3QNXiOUgAXCdr-NAFrQPw