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