Linux後臺運行進程

来源:https://www.cnblogs.com/qpf1/archive/2018/06/09/9161790.html
-Advertisement-
Play Games

最近在搭建kafka的過程中,發現啟動相關服務後,終端界面無法再進行操作。每次都需要開啟多個終端界面,實在是特別麻煩。於是就研究了下Linux後臺啟動程式的方法,並整理瞭如下的筆記。 1 後臺運行的例子 nohup command > /dev/null 2>&1 & 解釋: nohup: no h ...


  最近在搭建kafka的過程中,發現啟動相關服務後,終端界面無法再進行操作。每次都需要開啟多個終端界面,實在是特別麻煩。於是就研究了下Linux後臺啟動程式的方法,並整理瞭如下的筆記。

1 後臺運行的例子

nohup command > /dev/null 2>&1 &

解釋:

nohup:

no hangup,不掛斷地運行命令。只用nohup命令,關閉終端,進程還存在。若在終端中直接使用Ctrl+c,則會關閉進程。

command

command是用戶輸入的命令,可自行設置。如“java -jar crm.jar”等。

&

後臺運行。當你只使用“&”時,關閉終端,進程會關閉。

建議:

所以當你要讓程式在後臺不掛斷運行時,需要將nohup&一起使用。

 

2 數字0,1,2的含義

  linux中有三種標準輸入輸出,分別是STDINSTDOUTSTDERR,對應的數字是012STDIN是標準輸入,預設從鍵盤讀取信息;STDOUT是標準輸出,預設將輸出結果輸出至終端;STDERR是標準錯誤,預設將輸出結果輸出至終端。

   由於STDOUTSTDERR都會預設顯示在終端上,為了區分二者的信息,就有了編號的012的定義,用1表示STDOUT2表示STDERR

 

 

3 command >/dev/null的含義

  /dev/null表示一個空設備,就是說吧command的執行結果重定向到空設備中,說白了就是不顯示任何信息。

  null是一個名叫null小桶的東西,如果命令的輸出不想要即想丟棄輸出的內容,既不想在標準輸出與不想重定向到某個文件,就可將命令的輸出重定向到/dev/null。這樣做的好處是不會因為輸出的內容過多而導致文件大小不斷的增加。

  命令“command > /dev/null”是一個縮寫版,對於一個重定向命令,肯定是a > b這種形式,那麼command > /dev/null難道是command充當a的角色,/dev/null充當b的角色。這樣看起來比較合理,其實一條命令肯定是充當不了a,肯定是command執行產生的輸出來充當a,其實就是標準輸出stdout。所以command > /dev/null相當於執行了command 1 > /dev/null。執行command產生了標準輸出stdout(用1表示),重定向到/dev/null的設備文件中。

 

4 “2>&1”的含義

4.1 command>a 2>a 與 command>a 2>&1的區別

  通過上面的分析,對於command>a 2>&1這條命令,等價於command 1>a 2>&1可以理解為執行command產生的標準輸入重定向到文件a中,標準錯誤也重定向到文件a中。那麼是否就說command 1>a 2>&1等價於command 1>a 2>a呢。其實不是,command 1>a 2>&1與command 1>a 2>a還是有區別的,區別就在於前者只打開一次文件a,後者會打開文件兩次,並導致stdout被stderr覆蓋。&1的含義就可以理解為用標準輸出的引用,引用的就是重定向標準輸出產生打開的a。從IO效率上來講,command 1>a 2>&1比command 1>a 2>a的效率更高。

4.2 “2>&1”的理解

  那麼對於2>&1也就好理解了,2就是標準錯誤,1是標準輸出,那麼這條命令就是相當於把標準錯誤重定向到標準輸出。所以當程式產生錯誤的時候,相當於錯誤流向左邊,而左邊依舊是輸入到/dev/null中。

4.3 再談nohup命令

  如果使用nohup命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到一個名為nohup.out的文件中(比如:nohup command & ),除非另外指定了輸出文件,比如“nohup java -jar yellowstone-web.jar > subcrible-web.log &”。這時,標準輸出和標準錯誤都會保存到subcrible-web.log中。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 新手上路,老司機請多多包含!Ocelot 在博園裡文章特別多,但是按照其中一篇文章教程,如果經驗很少或者小白,是沒法將程式跑向博主的結果. 因此總結下 參考多篇文章,終於達到預期效果。 Ocelot 目標是使用.NET運行微服務/面向服務架構,我們需要一個統一的入口進入我們的服務,提供監控、鑒權、負 ...
  • Python3 與 C# 基礎語法對比(基礎知識場):https://www.cnblogs.com/dunitian/p/9103673.html Python3 與 C# 基礎語法對比(String專欄):https://www.cnblogs.com/dunitian/p/9119986.ht ...
  • 需求:當選擇工序時,帶出對應的作業內容 步驟一:使用SqlDataSource設定從資料庫撈取要填入下拉式選單的值 步驟二:設定下拉式選單的項目 步驟三:再拉一個SqlDatasource 步驟四:設定第二個SqlDataSource變數 步驟五:再拉一個下拉式選單設定數據源 , 但不打勾AutoP ...
  • 問題描述: “System.InvalidOperationException”類型的異常在 System.Data.OracleClient.dll 中發生,但未在用戶代碼中進行處理 其他信息: 嘗試載入 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 3 ...
  • Filter是延續ASP.NET MVC的產物,同樣保留了五種的Filter,分別是Authorization Filter、Resource Filter、Action Filter、Exception Filter及Result Filter。通過不同的Filter可以有效處理封包進出的加工,本 ...
  • 中斷的概念 CPU在處理某一事件A時,發生了另一事件B請求CPU迅速去處理(中斷發生); CPU暫時中斷當前的工作,轉去處理事件B(中斷響應和中斷服務); 待CPU將事件B處理完畢後, 再回到原來事件A被中斷的地方繼續處理事件A(中斷返回),這一過程稱為中斷。 我第一眼看見這東西,感覺跟函數嵌套調用 ...
  • 一、樹莓派介紹 Raspberry Pi(中文名為“樹莓派”,簡寫為RPi,或者RasPi/RP)是為電腦編程教育而設計,只有信用卡大小的卡片式電腦,其系統基於Linux。樹莓派底層是一個完整的Linux操作系統,而不像Android的底層還是一個精簡過的Linux嵌入式版本。樹莓派是一個開放源代 ...
  • windows下上傳shell腳本至linux,其格式將為dos。dos模式的shell腳本將不能再linux下正確運行,需要修改文件模式為unix。 1 查看文件模式方法 linux伺服器上,用vi編輯器打開shell腳本,隨後進入命令行模式,輸入"set ff",即可查看文件模式。 查看文件指令 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...