Linux伺服器掛死案例分析,linux案例分析

來源:互聯網
上載者:User

Linux伺服器掛死案例分析,linux案例分析

問題現象:

在linux伺服器上運行一個指定的指令碼時,就會出現無數個相同進程的,而且不停的產生,殺也殺不掉,最後系統就陷入死迴圈,無法登陸,只能人工去按機器的電源鍵才可以。這夠崩潰的吧?

問題分析過程:

在分析過程中發現這個特定的指令碼有些特別,和系統中已有的命令的名字是相同的。

以free命令為例:

這個指令碼名字就叫做free(後面沒有帶.sh),而且這個指令檔裡又去調用了free命令。

這個指令碼的本意應該是要去調用free命令來完成一個任務。

那是否就是因為這樣就會導致問題呢?

其實光這樣是不會出問題的,因為指令碼的調用一般要採用如下兩種方式來調用:

方式一、sh free

方式二、./free

如果直接執行free,會去調用系統命令中的free,而不是當前這個指令碼,那也就不會出現問題了。

另外一個條件就是環境變數的配置(Linux中環境設定檔可能為:.bash_profile .profle .bashrc):

對於PATH這個變數的配置,如果這個變數中包含了.,如

PATH=.:xxx:/sbin:/bin:/usr/sbin

在PATH中包含了. 之後,會發生什麼樣的效果呢,執行命令時,會在目前的目錄下去尋找命令,如果我們把點加到了PATH變數的最前面,那就會優先在目前的目錄下尋找命令。

此時再在目前的目錄下執行free,就會執行我們命名為free的指令檔,而指令檔又會調用自身,以此形成死迴圈。


總結:

1.PATH中如果增加點,那麼執行命令時,作業系統會在目前的目錄下尋找命令,如果點放到PATH的最前面,則會優先執行目前的目錄下的命令

2.不要將指令檔命令為與系統命令相同,不要去掉.sh尾碼。堅持一些開發的基本原則,很多時候會避免很多不必要的麻煩。



linux伺服器死機

伺服器死機的原因很多。如果確保在硬體沒問題的情況下。
可以先從/var/log下的日誌查起..通過iostat 或者 vmstat sar 等命令來檢查機器的整體效能狀態。
我不知道你是否做了相關的監控措施,比如通過某些監視軟體對伺服器進行監控。
通過監控資料分析伺服器的整體狀況。
也可以協調應用部門查看應用方面的日誌是否有異常。這個還得按照具體情況分析。
 
linux下串口讀寫問題掛死

這樣寫肯定會寫死的啊..寫(也就是串口發送資料)實際應用不會這麼頻繁的.樓主可以在寫後加上一個sleep(1);這樣就不會寫死了..
高並發讀寫這樣設計也是錯誤的應該用隊列來處理..
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.