第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么 exec.Start() 創(chuàng)建的進(jìn)程在其父進(jìn)程被 SIGINT 殺死時(shí)退出?

為什么 exec.Start() 創(chuàng)建的進(jìn)程在其父進(jìn)程被 SIGINT 殺死時(shí)退出?

Go
慕哥9229398 2021-06-30 10:43:56
我在golang中發(fā)現(xiàn)了一個(gè)奇怪的問(wèn)題。exec.Start()如果父程序被os.Interrupt信號(hào)中斷,則執(zhí)行的程序會(huì)退出,而如果父程序正常退出,則子程序不會(huì)退出。這兩種情況有什么區(qū)別?舉些例子:package mainimport "fmt"import "os"import "time"import "os/exec"func main(){    cmd := exec.Command("sleep", "100000")    cmd.Env = os.Environ()    fmt.Println(cmd.Env)    cmd.Start()    time.Sleep(1e9*20)    return} 在后一種情況下,如果我們不中斷主程序,sleep 100000則的父級(jí)將是init process20 秒之后。
查看完整描述

2 回答

?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

發(fā)生的情況是,如果您發(fā)送進(jìn)程 SIGINT(例如 os.Interrupt 所做的),同一進(jìn)程組中的所有進(jìn)程也將獲得該信號(hào)(包括子進(jìn)程)- SIGINT 默認(rèn)會(huì)終止進(jìn)程。

然而,如果父進(jìn)程正常退出,不是因?yàn)?SIGINT 或類似的原因,同一進(jìn)程組中的進(jìn)程不會(huì)得到任何信號(hào) - 它會(huì)繼續(xù)運(yùn)行,但會(huì)被 init 進(jìn)程采用。這不是 Go 特有的。


查看完整回答
反對(duì) 回復(fù) 2021-07-05
  • 2 回答
  • 0 關(guān)注
  • 310 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)