最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)閉linux終端還讓程序繼續(xù)執(zhí)行的實現(xiàn)方式

 更新時間:2023年12月25日 11:13:28   作者:beeworkshop  
這篇文章主要介紹了關(guān)閉linux終端還讓程序繼續(xù)執(zhí)行的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、前言

我們在使用linux時,會經(jīng)常要把一個程序放到后臺運行,這時候就需要在程序的最后使用【&】符號,但是當直接關(guān)閉這個終端時,程序就會退出

下面我介紹5種方法,在關(guān)閉終端后程序還繼續(xù)運行。

二、思考

首先要考慮一個問題,直接關(guān)閉終端為什么后臺程序就退出了?

那是因為直接關(guān)閉,終端會向當前環(huán)境啟動的后臺任務(wù)發(fā)送SIGHUP信號,讓運行的程序掛起,那么忽略SIGHUP信號就行啦。

三、nohup

最常用的命令就是【nohup】,從名字就看出是否掛起運行命令,關(guān)閉終端或者退出某個賬號,進程也繼續(xù)保持運行狀態(tài),同樣要配合【&】符號一起使用。

用法:nohup Command [ Arg … ] [&]

$ nohup sh test.sh &  
# 直接關(guān)閉當前終端,再打開一個查看  
$ ps -few|grep test.sh 

從上面的輸出可以看出,我們運行的test.sh的父進程變成了【PID 1】,由linux主進程接管。

四、setsid

nohup是忽略SIGHUP信號,那有沒有其他的思路?

使用setsid命令可以使程序打開新的進程,該進程繼承了父進程組的ID。

從下圖可以看到,test.sh腳本的父進程已經(jīng)是init 1,此時不管關(guān)閉還是退出終端,已經(jīng)和后臺的程序沒有關(guān)系了。

$ setsid sh test.sh 

setsid與nohup的一個重要區(qū)別是:不需要使用&壓入后臺。

此法使運行的進程以root身份運行,多少有些安全隱患。

五、exit

使用exit命令退出終端,我們的程序還是會繼續(xù)運行,這是為什么呢?

這是因為使用exit命令退出終端時不會向終端所屬任務(wù)發(fā)SIGHUP信號,這是huponexit 配置項控制的,默認是off,可以使用shopt 命令查看。

[root@api ~]# shopt |grep huponexit  
huponexit off 

將huponexit 配置成on,再次使用exit命令退出,所屬的任務(wù)就會跟隨退出。

[root@api ~]# shopt -s huponexit  
[root@api ~]# shopt |grep huponexit  
huponexit on 

六、trap

trap命令是linux內(nèi)置的命令

trap [接收到指定信號時將要采取的行動] signal_spec

常見的信號如下:

信號描述
1SIGHP掛起進程
2SIGINT終止進程
3SIGQUIT停止進程
9SIGKILL無條件終止進程
15SIGTERM盡可能終止進程
17SIGSTOP無條件停止進程,但不是終止進程
18SIGTSTP停止或暫停進程,但不終止進程
19SIGCONT繼續(xù)運行終止的進程

當一個腳本要在后臺運行,不希望終端退出后關(guān)閉腳本程序,我們可以在的腳本中增加trap命令來忽略SIGHUP信號(掛起進程)。

#!/bin/bash
trap "" HUP  
while true;do  
	date >> /root/test.txt  
	sleep 1  
done 

七、screen

screen命令用于管理多個終端,它可以創(chuàng)建終端,讓程序在里面運行。

screen sh test.sh & 

從上圖可以看出,test.sh腳本的父進程是screen終端進程【PID 7806】,而screen終端的父進程【PID 1】,同樣可以實現(xiàn)后臺的運行。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • linux NFS 學(xué)習(xí)筆記

    linux NFS 學(xué)習(xí)筆記

    通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統(tǒng)上的文件
    2014-07-07
  • Apache No space left on device的解決辦法

    Apache No space left on device的解決辦法

    [Fri Aug 15 10:54:31 2008] [emerg] (28)No space left on device: Couldn't create accept lockdf一下發(fā)現(xiàn)不是磁盤空間的問題。Google了一下就找到了解決方案,原來是系統(tǒng)的信號量(?)不夠用了。
    2008-08-08
  • linux隱藏文件實現(xiàn)打開查看

    linux隱藏文件實現(xiàn)打開查看

    本文詳細介紹了在Linux系統(tǒng)中查看隱藏文件的方法,包括圖形界面(如Ctrl+H快捷鍵和菜單操作)和命令行(如ls?-a和ls?-la命令),并舉例說明了如何查看和編輯隱藏文件內(nèi)容
    2025-12-12
  • Linux安裝n卡驅(qū)動,美化gnomed的實踐

    Linux安裝n卡驅(qū)動,美化gnomed的實踐

    本文介紹了如何更換Linux系統(tǒng)中NVIDIA顯卡的驅(qū)動,并展示了如何使用GNOME桌面環(huán)境進行個性化設(shè)置和美化
    2026-01-01
  • Apache服務(wù)器中.htaccess的基本配置總結(jié)

    Apache服務(wù)器中.htaccess的基本配置總結(jié)

    這篇文章主要介紹了Apache服務(wù)器中.htaccess的基本配置總結(jié),可以很方便地實現(xiàn)一些權(quán)限分配等效果,需要的朋友可以參考下
    2015-07-07
  • Apache?Flink?如何保證?Exactly-Once?語義(其原理分析示例)

    Apache?Flink?如何保證?Exactly-Once?語義(其原理分析示例)

    Apache?Flink?是一個流處理和批處理的開源平臺,它提供了豐富的語義保證,其中之一就是?Exactly-Once?語義,本文將深入探討?Flink?是如何保證?Exactly-Once?語義的,包括其原理分析和相關(guān)示例,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 解決fatal:remote error:You can''t push to git://github.com/username/*.git問題的辦法

    解決fatal:remote error:You can''t push to git://github.com/use

    這篇文章主要介紹了解決fatal:remote error:You can't push to git://github.com/username/*.git問題的辦法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • jps查看進程無法顯示的問題及解決

    jps查看進程無法顯示的問題及解決

    文章描述了使用jps命令查看進程無法顯示的問題,并提供了解決方案,解決方法包括切換到tmp目錄,使用ll命令查看子目錄,找到并修改權(quán)限為755的"hsperfdata_[用戶名]"和"hsperfdata_root"目錄
    2025-01-01
  • vim的一些常用簡單操作小結(jié)

    vim的一些常用簡單操作小結(jié)

    大家都知道vim在Linux下使用很多,但是習(xí)慣了在Windows下的文本操作,在vim中進行文本操作會覺得很不方便,但是vim是一個很強大的工具,只是還不熟練去使用它,下面是一些常用的vim文本操作方法。
    2016-09-09
  • 源碼安裝apache腳本部署過程詳解

    源碼安裝apache腳本部署過程詳解

    這篇文章主要介紹了源碼安裝apache腳本部署,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09

最新評論

基隆市| 高碑店市| 江孜县| 内丘县| 始兴县| 宜昌市| 天台县| 合川市| 疏附县| 偏关县| 焦作市| 十堰市| 晴隆县| 小金县| 楚雄市| 大理市| 班戈县| 丁青县| 彩票| 北宁市| 井冈山市| 宜宾市| 纳雍县| 渝中区| 鸡泽县| 桑日县| 英德市| 雅江县| 沅陵县| 寿宁县| 界首市| 古交市| 蒲城县| 商水县| 宜宾市| 长兴县| 育儿| 广南县| 孟津县| 临邑县| 平原县|