nohup/setsid/& 讓進程在後臺可靠運行

来源:http://www.cnblogs.com/bymo/archive/2017/08/16/7373349.html
-Advertisement-
Play Games

當用戶註銷(logout)或者網路斷開時,終端會收到 HUP(hangup)信號從而關閉其所有子進程。因此,我們的解決辦法就有兩種途徑:要麼讓進程忽略 HUP 信號,要麼讓進程運行在新的會話里從而成為不屬於此終端的子進程。 (hangup 名稱的來由:在 Unix 的早期版本中,每個終端都會通過 m ...


 

當用戶註銷(logout)或者網路斷開時,終端會收到 HUP(hangup)信號從而關閉其所有子進程。因此,我們的解決辦法就有兩種途徑:要麼讓進程忽略 HUP 信號,要麼讓進程運行在新的會話里從而成為不屬於此終端的子進程

(hangup 名稱的來由:在 Unix 的早期版本中,每個終端都會通過 modem 和系統通訊。當用戶 logout 時,modem 就會掛斷(hang up)電話。 同理,當 modem 斷開連接時,就會給終端發送 hangup 信號來通知其關閉所有子進程)

 

1.nohup:讓提交的命令忽略 hangup 信號

nohup 的幫助信息:

$ nohup --help

Usage: nohup COMMAND [ARG]... or: nohup OPTION
Run COMMAND, ignoring hangup signals.
--help display this help and exit --version output version information and exit If standard input is a terminal, redirect it from an unreadable file. If standard output is a terminal, append output to 'nohup.out' if possible, '$HOME/nohup.out' otherwise. If standard error is a terminal, redirect it to standard output. To save output to FILE, use 'nohup COMMAND > FILE'.

 

使用:在要處理的命令前加上 nohup 即可,標準輸出和標準錯誤預設會被重定向到 nohup.out 文件中。一般我們可在結尾加上"&"來將命令同時放入後臺運行,也可用"> filename"來更改預設的重定向文件路徑。

nohup ping www.baidu.com &
nohup python train_model.py > console.log &

 

2.setsid:在新session執行命令(使進程不屬於接受 HUP 信號的終端的子進程,那麼就不會受到 HUP 信號的影響)

setsid的幫助信息:

$ setsid --help

Usage:
 setsid [options] <program> [arguments ...]

Run a program in a new session.

Options:
 -c, --ctty     set the controlling terminal to the current one
 -w, --wait     wait program to exit, and use the same return
 -h, --help     display this help and exit
 -V, --version  output version information and exit

 

使用:

setsid ping www.ibm.com &

 

另外,查看進程並停止:

$ ps -ef | grep ping
abby      3899  1632  0 14:39 ?        00:00:00 ping www.baidu.com
abby      4038  3907  0 14:43 pts/20   00:00:00 grep --color=auto ping

$ kill -9 3899

 

參考:

Linux 技巧:讓進程在後臺可靠運行的幾種方法

 


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

-Advertisement-
Play Games
更多相關文章
  • 出處:http://blog.csdn.net/jsship/article/details/42914217 運行mysql命令時,出現的錯誤提示是亂碼 : [Err] 1064 - Erreur de syntaxe pr&egrave;s de '2' &agrave; la ligne 1 ...
  • 在伺服器上訓練並保存模型,複製到本地之後load_model()報錯: ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: 'Tensor("embedding_1/random_uni ...
  • 任務列表 比對軟體 hisat2的用法 下載index文件 比對、排序、索引 質量控制 載入IGV,截圖幾個基因 hisat2的用法 本作業是比對到基因組,所以使用gapped or splices mapper,此流程已經更新。TopHat首次被髮表已經是7年前,STAR的比對速度是TopHat的 ...
  • 原文發表於cu:2016-05-11 參考文檔: 一.環境 Server:CentOS-7-x86_64-1511 Server IP: 192.168.11.252 Web環境:CentOS-7-x86_64-1511編譯nginx-1.9.12+ mysql-5.7.11+ php-7.0.4 ...
  • 在Linux中,vim *.sh 文件,輸入下麵代碼,然後保存退出; 把該文件放在一個文件夾中, ./*.sh ,能夠把該文件夾下的全部同類型文件的編碼由GBK轉變為UTF-8; 執行效果如下: ...
  • 老葵花哥哥課堂開課了本文檔秉承愛看不看的原則 一不要錢 二服務大眾的高尚情操咱們今天講一講rescue恢復磁碟分區 首先咱們搭建環境搞起來 (parted) mkpart #創建分區 Partition name? []? oldboy #名字 File system type? [ext2]? e ...
  • PPTP和L2TP只差一步配置,現在蘋果已經不支持PPTP,所以只能使用L2TP連接。廢話不多說,下麵開始搭建: 1、PPTP VPN 配置 新安裝好的OS,進入系統,首先添加角色 勾選添加網路策略和訪問服務 如圖勾選需要的角色服務 安裝完成後,依次點擊開始-管理工具-路由與遠程訪問工具 如圖在服務 ...
  • Windows的文件系統通常使用NTFS或者FAT32格式,而Linux的文件系統格式通常是EXT系列,請參考下麵方法: 1) 在Linux系統上使用以下命令安裝ntfsprogs軟體使得Linux能夠支持NTFS文件系統: 2) 將Windows下的數據盤掛載至Linux雲伺服器,若數據盤已掛載則 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...