如何让进程后台运行?(TX)
一、運(yùn)行指令 + & (如: ./a.out &)
這樣是將命令放入到一個(gè)作業(yè)隊(duì)列中了
表現(xiàn):
1、結(jié)果會(huì)輸出到終端
2、前臺(tái)出現(xiàn)進(jìn)程號(hào)
3、使用Ctrl + C發(fā)送SIGINT信號(hào),程序免疫
4、關(guān)閉session發(fā)送SIGHUP信號(hào),程序關(guān)閉(也就是不能脫離終端運(yùn)行)
5、用kill可殺死。
二、ctrl + z
進(jìn)程掛起:
ctrl+z :程序放到后臺(tái)執(zhí)行
jobs :查看被掛起的程序工作號(hào)
進(jìn)程的恢復(fù):
fg 工作號(hào) :將掛起的作業(yè)放回到前臺(tái)執(zhí)行
bg 工作號(hào) : 將掛起的作業(yè)放到后臺(tái)執(zhí)行
三、nohup + 運(yùn)行指令 (如: nohup ./a.out )
1、前臺(tái)沒(méi)有出現(xiàn)進(jìn)程號(hào)
2、有一個(gè)“忽略輸入,輸出至nohup.out的提示
3、輸出也沒(méi)有出現(xiàn)在前臺(tái)
4、關(guān)閉session發(fā)送SIGHUP信號(hào),程序免疫
3、ctrl +c 會(huì)殺死進(jìn)程
四、nohup + 運(yùn)行指令 + & (如:nohup ./a.out &)
1、會(huì)在終端顯示進(jìn)程號(hào)
2、 將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤缺省會(huì)被重定向到 nohup.out 文件中
3、忽略所有掛斷(SIGHUP)信號(hào) 只能kill殺死
4、 運(yùn)行指令前面 + setsid,使其父進(jìn)程變成init進(jìn)程,不受HUP信號(hào)的影響
5、 將 命令+ &放在()括號(hào)中,也可以使進(jìn)程不受HUP信號(hào)的影響
終端退出,終端運(yùn)行的進(jìn)程會(huì)怎樣?
終端在退出時(shí)會(huì)發(fā)送SIGHUP給對(duì)應(yīng)的bash進(jìn)程
bash進(jìn)程收到這個(gè)信號(hào)后首先將它發(fā)給session下面的進(jìn)程
如果程序未對(duì)SIGHUP信號(hào)做特殊處理,那么進(jìn)程就會(huì)隨著終端關(guān)閉而退出
總結(jié)
以上是生活随笔為你收集整理的如何让进程后台运行?(TX)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 内存覆盖及内存交换
- 下一篇: 删除二叉搜索树中的节点