在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Nohup命令
信號(hào)
創(chuàng)建目錄權(quán)限
示例程序
進(jìn)程的定義
Hello World進(jìn)程
創(chuàng)建進(jìn)程
進(jìn)程鎖
第四章 項(xiàng)目實(shí)例Run
Nohup命令
PID
前言
系統(tǒng)調(diào)用sendfile
進(jìn)程參數(shù)
參考書籍
后記
進(jìn)程狀態(tài)
本書概述
寫時(shí)復(fù)制(Copy On Write)
Docker簡(jiǎn)介
第五章 注意事項(xiàng)
實(shí)現(xiàn)Run
孤兒進(jìn)程概念
共享內(nèi)存
衍生(Spawn)新進(jìn)程
PPID
第三章 進(jìn)程進(jìn)階
退出碼
簡(jiǎn)介
進(jìn)程文件
Thanks for reading!
項(xiàng)目學(xué)習(xí)
第一章 進(jìn)程基礎(chǔ)
僵尸進(jìn)程
系統(tǒng)調(diào)用
POSIX簡(jiǎn)介
執(zhí)行(Exec)外部程序
文件描述符
進(jìn)程名字
進(jìn)程輸入與輸出
Cgroups
進(jìn)程間通信
查看PID
死鎖概念
進(jìn)程越多越好?
Run項(xiàng)目架構(gòu)
  • 1.
復(fù)制(Fork)進(jìn)程
第二章 Go編程實(shí)例
活鎖概念
守護(hù)(Daemon)進(jìn)程
并發(fā)與并行
捕獲SIGKILL
Namespaces簡(jiǎn)介

Nohup命令

Nohup命令

每個(gè)開發(fā)者都會(huì)躺過這個(gè)坑,在命令行跑一個(gè)后臺(tái)程序,關(guān)閉終端后發(fā)現(xiàn)進(jìn)程也退出了,網(wǎng)上搜一下發(fā)現(xiàn)要用nohup,究竟什么原因呢?

原來普通進(jìn)程運(yùn)行時(shí)默認(rèn)會(huì)綁定TTY(虛擬終端),關(guān)閉終端后系統(tǒng)會(huì)給上面所有進(jìn)程發(fā)送TERM信號(hào),這時(shí)普通進(jìn)程也就退出了。當(dāng)然還有些進(jìn)程不會(huì)退出,這就是后面將會(huì)提到的守護(hù)進(jìn)程。

Nohup的原理也很簡(jiǎn)單,終端關(guān)閉后會(huì)給此終端下的每一個(gè)進(jìn)程發(fā)送SIGHUP信號(hào),而使用nohup運(yùn)行的進(jìn)程則會(huì)忽略這個(gè)信號(hào),因此終端關(guān)閉后進(jìn)程也不會(huì)退出。

舉個(gè)例子

我們用Go實(shí)現(xiàn)最簡(jiǎn)單的Web服務(wù)器,代碼web_server.go如下。

package main

import (
  "fmt"
  "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Println("Handle request")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8000", nil)
}

然后在終端上運(yùn)行,并測(cè)試一下。

? go build web_server.go
? ./web_server &
[1] 25967
?  wget 127.0.0.1:8000
--2014-12-28 22:24:07--  http://127.0.0.1:8003/
Connecting to 127.0.0.1:8003... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5 [text/plain]
Saving to: 'index.html.4'

100%[======================>] 5           --.-K/s   in 0s

2014-12-28 22:24:07 (543 KB/s) - 'index.html' saved [5/5]

如果關(guān)閉終端,curl命令就連不上我們的Web服務(wù)器了。如果使用nohup運(yùn)行呢?

? go build web_server.go
? nohup ./web_server &
[1] 25968
? exit
? wget 127.0.0.1:8003
--2014-12-28 22:24:11--  http://127.0.0.1:8003/

發(fā)現(xiàn)關(guān)閉終端對(duì)Web服務(wù)器進(jìn)程沒有任何影響,這正是我們預(yù)期的。這是運(yùn)行守護(hù)進(jìn)程最簡(jiǎn)單的方法,實(shí)際上標(biāo)準(zhǔn)的守護(hù)進(jìn)程除了處理信號(hào)外,還要考慮這種因素,后面將會(huì)詳述。

上一篇:后記下一篇:POSIX簡(jiǎn)介