Linux(Centos7) 開(kāi)機(jī)自啟,后臺(tái)執(zhí)行嗦董,標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出

  • 后臺(tái)執(zhí)行

    • &的意思是在后臺(tái)運(yùn)行, 什么意思呢峡眶? 意思是說(shuō)剧防, 當(dāng)你在執(zhí)行 ./a.out & 的時(shí)候, 即使你用ctrl C, 那么a.out照樣運(yùn)行(因?yàn)閷?duì)SIGINT信號(hào)免疫)辫樱。 但是要注意峭拘, 如果你直接關(guān)掉shell后, 那么狮暑, a.out進(jìn)程同樣消失鸡挠。 可見(jiàn), &的后臺(tái)并不硬(因?yàn)閷?duì)SIGHUP信號(hào)不免疫)搬男。
    • nohup的意思是忽略SIGHUP信號(hào)拣展, 所以當(dāng)運(yùn)行nohup ./a.out的時(shí)候, 關(guān)閉shell, 那么a.out進(jìn)程還是存在的(對(duì)SIGHUP信號(hào)免疫)止后。 但是瞎惫, 要注意, 如果你直接在shell中用Ctrl C, 那么, a.out進(jìn)程也是會(huì)消失的(因?yàn)閷?duì)SIGINT信號(hào)不免疫)
    • 所以译株, &和nohup沒(méi)有半毛錢(qián)的關(guān)系, 要讓進(jìn)程真正不受shell中Ctrl C和shell關(guān)閉的影響挺益, 那該怎么辦呢歉糜? 那就用nohua ./a.out &吧, 兩全其美望众。
    • 如果你懂守護(hù)進(jìn)程匪补, 那么nohup ./a.out &頗有點(diǎn)讓a.out成為守護(hù)進(jìn)程的感覺(jué)伞辛。
  • 標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出

    • 有時(shí)候會(huì)經(jīng)常碰到nohup command>/dev/null 2>&1 &這樣形式的命令
    • 幾個(gè)基本符號(hào)及其含義
      • /dev/null 表示空設(shè)備文件
      • 0 表示stdin標(biāo)準(zhǔn)輸入
      • 1 表示stdout標(biāo)準(zhǔn)輸出
      • 2 表示stderr標(biāo)準(zhǔn)錯(cuò)誤
    • 從command>/dev/null說(shuō)起
      其實(shí)這條命令是一個(gè)縮寫(xiě)版,對(duì)于一個(gè)重定向命令夯缺,肯定是a > b這種形式蚤氏,那么command > /dev/null看起來(lái)像是command充當(dāng)a的角色,/dev/null充當(dāng)b的角色踊兜。這樣看起來(lái)比較合理竿滨,其實(shí)一條命令肯定是充當(dāng)不了a,肯定是command執(zhí)行產(chǎn)生的輸出來(lái)充當(dāng)a捏境,其實(shí)就是標(biāo)準(zhǔn)輸出stdout于游。所以command > /dev/null相當(dāng)于執(zhí)行了command 1 > /dev/null。執(zhí)行command產(chǎn)生了標(biāo)準(zhǔn)輸出stdout(用1表示)垫言,重定向到/dev/null的設(shè)備文件中贰剥。
    • 說(shuō)說(shuō)2>&1
      通過(guò)上面command > /dev/null等價(jià)于command 1 > /dev/null,那么對(duì)于 2>&1也就好理解了凛捏,2就是標(biāo)準(zhǔn)錯(cuò)誤笑陈,1是標(biāo)準(zhǔn)輸出,那么這條命令不就是相當(dāng)于把標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出么葵袭。等等是&1而不是1涵妥,這里&是什么?這里&相當(dāng)于等效于標(biāo)準(zhǔn)輸出蓬网。這里有點(diǎn)不好理解鹉勒,先看下面帆锋。
    • command>a 2>acommand>a 2>&1的區(qū)別
      通過(guò)上面的分析禽额,對(duì)于command>a 2>&1這條命令脯倒,等價(jià)于command 1>a 2>&1可以理解為執(zhí)行command產(chǎn)生的標(biāo)準(zhǔn)輸入重定向到文件a中实辑,標(biāo)準(zhǔn)錯(cuò)誤也重定向到文件a中。那么是否就說(shuō)command 1>a 2>&1等價(jià)于command 1>a 2>a呢剪撬。其實(shí)不是悠反,command 1>a 2>&1command 1>a 2>a還是有區(qū)別的梨水,區(qū)別就在于前者只打開(kāi)一次文件a拭荤,后者會(huì)打開(kāi)文件兩次,并導(dǎo)致stdout被stderr覆蓋疫诽。&1的含義就可以理解為用標(biāo)準(zhǔn)輸出的引用舅世,引用的就是重定向標(biāo)準(zhǔn)輸出產(chǎn)生打開(kāi)的a踊沸。從IO效率上來(lái)講,command 1>a 2>&1比command 1>a 2>a的效率更高逼龟。
  • 開(kāi)機(jī)自啟

    • 方式一:將軟件注冊(cè)為服務(wù)并開(kāi)機(jī)自啟
    • 方式二:添加開(kāi)機(jī)自啟腳本
      • 在centos7中增加腳本,以腳本autostart.sh為例:
        #!/bin/bash
        #description:開(kāi)機(jī)自啟腳本
        /usr/local/tomcat/bin/startup.sh  #啟動(dòng)tomcat
        
      • chmod +x /opt/script/autostart.sh,給腳本賦權(quán)
      • 添加開(kāi)啟自啟腳本的方式一
        • 打開(kāi)/etc/rc.d/rc/local文件奕短,在末尾增加如下內(nèi)容
          /opt/script/autostart.sh 
          
        • 在centos7中匀钧,/etc/rc.d/rc.local的權(quán)限被降低了,所以需要執(zhí)行如下命令賦予其可執(zhí)行權(quán)限
          chmod +x /etc/rc.d/rc.local
          
      • 添加開(kāi)啟自啟腳本的方式二
        • 將腳本移動(dòng)到/etc/rc.d/init.d目錄下
          mv  /opt/script/autostart.sh /etc/rc.d/init.d
          
        • 增加腳本的可執(zhí)行權(quán)限
          chmod +x  /etc/rc.d/init.d/autostart.sh
          
        • 添加腳本到開(kāi)機(jī)自動(dòng)啟動(dòng)項(xiàng)目中
          cd /etc/rc.d/init.d
          chkconfig --add autostart.sh
          chkconfig autostart.sh on
          
        • 常見(jiàn)的錯(cuò)誤“服務(wù)不支持 chkconfig”:
          請(qǐng)注意檢查腳本的前面之斯,是否有完整的兩行:
          #chkconfig: 2345 80 90
          #description:auto_run
          
          在腳本前面這兩行是不能少的,否則不能chkconfig命令會(huì)報(bào)錯(cuò)誤莉擒。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瘫絮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子麦萤,更是在濱河造成了極大的恐慌,老刑警劉巖翅帜,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垛孔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡周荐,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)概作,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人讯榕,你說(shuō)我怎么就攤上這事∮奁ǎ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵送浊,是天一觀的道長(zhǎng)丘跌。 經(jīng)常有香客問(wèn)我,道長(zhǎng)耸棒,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任与殃,我火速辦了婚禮碍现,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘衣屏。我一直安慰自己辩棒,他們只是感情好狼忱,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布钻弄。 她就那樣靜靜地躺著者吁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪复凳。 梳的紋絲不亂的頭發(fā)上灶泵,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天对途,我揣著相機(jī)與錄音,去河邊找鬼实檀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛恬吕,可吹牛的內(nèi)容都是我干的须床。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼余赢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了妻柒?” 一聲冷哼從身側(cè)響起耘分,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎求泰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體芽丹,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卜朗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蚊俺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逛万。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出埋心,到底是詐尸還是另有隱情呛每,我是刑警寧澤坡氯,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站箫柳,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏库糠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一瞬欧、第九天 我趴在偏房一處隱蔽的房頂上張望罢防。 院中可真熱鬧,春花似錦咒吐、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至硅确,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疏魏,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工蛉腌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烙丛。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像钠右,于是被迫代替她去往敵國(guó)和親忘蟹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子飒房,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一狠毯、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,753評(píng)論 0 10
  • 1.Linux下如何用命令查看實(shí)時(shí)日志(完整命令) tail -f 路徑.log查看前多少行 tai-200f 路...
    qianyewhy閱讀 2,295評(píng)論 0 11
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,407評(píng)論 0 5
  • cenos6啟動(dòng)流程 加載BIOS的硬件信息嚼松,獲取第一個(gè)啟動(dòng)設(shè)備 讀取第一個(gè)啟動(dòng)設(shè)備MBR的引導(dǎo)加載程序(grub...
    毛利卷卷發(fā)閱讀 1,064評(píng)論 0 1
  • 1:InputChannel提供函數(shù)創(chuàng)建底層的Pipe對(duì)象 2: 1)客戶(hù)端需要新建窗口 2)new ViewRo...
    自由人是工程師閱讀 5,322評(píng)論 0 18