關於如何把進程變爲後臺進程

背景:之前做完一個項目,想把它放到雲服務器上 24 小時不間斷運行,在雲服務器上面折騰了不少時間,總算搞定了

因爲是 C++ 項目,而且寫的服務器也是基於 httplib 庫實現的,所以不需要在雲服務器上進行配置,只需要在 Linux shell 命令下將生成的可執行文件變爲後臺進程就可以了

命令如下:

nohup ./ 可執行的程序 > 正確輸出日誌文件 2>錯誤輸出流 & 

例如

nohup ./system > tmp/right.log 2> tmp/error.log &

爲什麼這樣寫呢?因爲我們的前臺進程一般都會在命令界面進行輸出,但是對於後臺進程我們需要把輸出的內容重定向到一個文件中去.

什麼叫重定向,就是我本來要顯示在界面,但是通過 shell 命令放到了指定文件中,或者我本來想要讓輸出到 A 文件,但是可以重定向到 B 文件中

Linux 進程默認情況下會有 3 個缺省打開的文件描述符,分別是標準輸入0, 標準輸出1, 標準錯誤2.

0,1,2對應的物理設備一般是:鍵盤,顯示器,顯示器

但是按照上面那樣寫,如果退出 shell 命令依然訪問不到

可以把日誌寫到**.log 中,如下圖:

在這裏插入圖片描述
可以將命令寫成這樣

./system & >**.log  2>&1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章