判斷進(jìn)程是否存在。示例:
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),金鳳企業(yè)網(wǎng)站建設(shè),金鳳品牌網(wǎng)站建設(shè),網(wǎng)站定制,金鳳網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,金鳳網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
timer=20?#20s定時(shí)器
flag=1?#標(biāo)識進(jìn)程是否存在
while?[?$timer?-gt?0?]
do
sleep?2
ps?-aux?|?grep?進(jìn)程名?|?grep?-v?grep?/dev/null?#查詢進(jìn)程
[?$??-ne?0?]??flag=0??break?#進(jìn)程不存在了就退出循環(huán)
let?timer-=1
done
[?$flag?-eq?1?]??kill?-9?$(ps?-aux?|?awk?'/?bash$/{print?$1}')
vim /etc/ssh/sshd_config
找到ClientAliveInterval 參數(shù),如果沒有就自己加一行。
ClientAliveInterval 參數(shù)的數(shù)值是秒,比如你設(shè)置為540,就是9分鐘.
ClientAliveInterval 540
對于ClientAliveCountMax
指如果發(fā)現(xiàn)客戶端沒有相應(yīng),則判斷一次超時(shí),這個(gè)參數(shù)設(shè)置允許超時(shí)的次數(shù),比如10。
ClientAliveInterval 540
ClientAliveCountMax 10;
則代表允許超時(shí) 5400秒 = 90分鐘。
方法2:配置客戶端
1 linux下的ssh命令
vim /etc/ssh/ssh_config
然后找到里面的ServerAliveInterval 參數(shù),如果沒有你同樣自己加一個(gè)就好了。參數(shù)意義相同,都是秒數(shù),比如9分鐘:
ServerAliveInterval 540
2 SecureCRT
設(shè)置反空閑,如下圖所示
securecrt_to
3 Putty
啟用putty keepalive
putty - Connection - Seconds between keepalives ( 0 to turn off ),默認(rèn)為0,改為60。
一個(gè)方法是:信號+子進(jìn)程的方法...顯得比較繁瑣...
定義一個(gè)全局變量,作為標(biāo)志位
fork,讓子進(jìn)程去執(zhí)行系統(tǒng)調(diào)用...
然后父進(jìn)程調(diào)用alarm,設(shè)置周期為20秒,這樣每隔20秒會收到一個(gè)SIGALRM;
然后注冊SIGALRM和SIGCHILD這兩個(gè)信號的處理函數(shù),可以讓其中一個(gè)信號處理函數(shù)去修改全局變量..(子進(jìn)程返回時(shí)候父進(jìn)程會收到一個(gè)SIGCHILD信號)
再然后,調(diào)用sigsuspend讓父進(jìn)程休眠,設(shè)置好信號掩碼,保證兩個(gè)信號可以喚醒父進(jìn)程--SIGALRM和SIGCHILD。
然后就是你父進(jìn)程被某個(gè)信號喚醒了...此時(shí)就判斷是怎么被喚醒(用剛才那個(gè)全局變量判斷)...要是SIGALRM,就說明超時(shí)了.要是SIGCHILD就說明沒超時(shí)...后面就是你自己的事情了.兩種情況分別處理唄..
當(dāng)然,另外一種簡單的方法(比較耗費(fèi)CPU)...還是需要子進(jìn)程...
先fork,然后調(diào)用waitpid,設(shè)置為立即返回,這樣可以立刻判斷子進(jìn)程的狀態(tài),然后若時(shí)間沒超出你的要求,就繼續(xù)waitpid,直到時(shí)間超出20秒或者子進(jìn)程在時(shí)限之前返回...這樣輪詢顯然非常浪費(fèi)CPU...(如何判斷可以 man waitpid)
別的方法...我也想不出來了...
對所有用戶設(shè)置自動注銷功能:
首先,以root用戶登錄系統(tǒng),輸入 vi /etc/profile 命令,編輯profile文件。
查找TMOUT,若沒有,則可以在文件最后添加如下語句:
TMOUT=300
export TOMOUT
如果查找到了,直接設(shè)置時(shí)間。
300表示自動注銷的時(shí)間為300秒。
編輯好文件后,保存,退出,重新登錄,設(shè)置生效。
一、有個(gè)工具叫screen,可以虛擬終端,通過命令screen -S name 來創(chuàng)建一個(gè)名為name的虛擬終端,這樣即使終端超時(shí)自動斷開,再登錄到系統(tǒng)之后只需要screen -r name就可以繼續(xù)連接到剛才創(chuàng)建的虛擬終端,且所有的操作都會繼續(xù)不會中斷。
二、遠(yuǎn)程工具可以進(jìn)行相關(guān)的設(shè)置,比如secretcrt這個(gè)工具就可以設(shè)置每10秒操作一下,這樣就不會中斷。
分享題目:linux執(zhí)行命令超時(shí),shell設(shè)置命令超時(shí)
路徑分享:http://vcdvsql.cn/article16/hsegdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、外貿(mào)建站、定制網(wǎng)站、做網(wǎng)站、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)