nohup Shell後台執行

2022-06-17 19:36:09 字數 1890 閱讀 2473

&方式:

/usr/local/mysql/bin/mysqld_safe --user=mysql &

nohup方式:

但是我們很多程式並不象mysqld一樣可以做成守護程序,可能我們的程式只是普通程式而已,一般這種程式即使使用 & 結尾,如果終端關閉,那麼程式也會被關閉。為了能夠後台執行,我們需要使用nohup這個命令,比如我們有個start.sh需要在後台執行,並且希望在後台能夠一直執行,那麼就使用nohup: 

nohup /root/start.sh & 

原程式的的標準輸出被自動改向到當前目錄下的nohup.out檔案,起到了log的作用。

nohup是永久執行

&是指在後台執行

執行 nohup --help

run command, ignoring hangup signals. 可以看到是「執行命令,忽略掛起訊號」

就是指,用nohup執行命令可以使命令永久的執行下去,和使用者終端沒有關係,例如我們斷開ssh連線都不會影響他的執行,注意了nohup沒有後台執行的意思;&才是後台執行

&是指在後台執行,但當使用者推出(掛起)的時候,命令自動也跟著退出

那麼,我們可以巧妙的吧他們結合起來用就是

nohup command &

這樣就能使命令永久的在後台執行

舉個例子nohup tail -f nohup.out

然後退出登入,再連線,用ps -ef 你會還能看到在執行

ps -ef

root      3457     1  0 18:20 ?        00:00:00 tail -f nohup.out

另外,nohup執行後,會產生日子檔案,把命令的執行中的訊息儲存到這個檔案中,一般在當前目錄下,如果當前目錄不可寫,那麼自動儲存到執行這個命令的使用者的home目錄下,例如root的話就儲存在/root/下

nohup 命令 

用途:不結束通話地執行命令。 

語法:nohup command [ arg ... ] [ & ] 

描述:nohup 命令執行由 command 引數和任何相關的 arg 引數指定的命令,忽略所有結束通話(sighup)訊號。在登出後使用 nohup 命令執行後台中的程式。要執行後台中的 nohup 命令,新增 & ( 表示"and"的符號)到命令的尾部。 

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 檔案中。如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 $home/nohup.out 檔案中。如果沒有檔案能建立或開啟以用於追加,那麼 command 引數指定的命令不可呼叫。如果標準錯誤是乙個終端,那麼把指定的命令寫給標準錯誤的所有輸出作為標準輸出重定向到相同的檔案描述符。 

退出狀態:該命令返回下列出口值: 

126 可以查詢但不能呼叫 command 引數指定的命令。 

127 nohup 命令發生錯誤或不能查詢由 command 引數指定的命令。 

否則,nohup 命令的退出狀態是 command 引數指定命令的退出狀態。 

nohup命令及其輸出檔案 

nohup命令:如果你正在執行乙個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之後繼續執行相應的程序。nohup就是不掛起的意思( n ohang up)。 

該命令的一般形式為:nohup command & 

使用nohup命令提交作業 

如果使用nohup命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到乙個名為nohup.out的檔案中,除非另外指定了輸出檔案: 

nohup command > myout.file 2>&1 & 

在上面的例子中,輸出被重定向到myout.file檔案中。 

使用 jobs 檢視任務。 

使用 fg %n 關閉。 

後台執行命令

1.cron是系統主要的排程程序,可以在無需人工干預的情況下執行作業。有乙個叫做crontab的命令允許使用者提交 編輯或刪除相應的作業。2.crob的域 第1列 分鐘1 59 第2列 小時1 23 0表示子夜 第3列 日1 31 第4列 月1 12 第5列 星期0 6 0表示星期天 第6列 要執行...

Shell後台執行

1.最經常被用到 這個用在乙個命令的最後,可以把這個命令放到後台執行 2.ctrl z 可以將乙個正在前台執行的命令放到後台,並且暫停 3.jobs 檢視當前有多少在後台執行的命令 4.fg 將後台中的命令調至前台繼續執行 如果後台 中有多個命令,可以用 fg jobnumber將選中的命令調出,j...

orace後台執行

7.19 資料庫後台執行命令和客戶端登陸 sqlplus username password host port sid 普通使用者 sqlplus as sysdba或者conn as sysdba sys使用者 pl sql普通使用者登陸 database 10.171.37.11 1526 t...