用trap命令,正常退出調(diào)用的應該是SIGHUP(1),非正常退出根據(jù)情況不同調(diào)用SIGINT(2), SIGQUIT(3),SIGTERM(15)。一般情況的退出基本上1 2 3 15都能包括了。
10多年的英山網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整英山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“英山網(wǎng)站設計”,“英山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
例:
##################################
#!/bin/sh
trap`echo get_messages` 1 2 3 15
##################################
其中用``包含的部分寫你要執(zhí)行的腳本或者命令。
后面的1 2 3 15是捕捉的SIGNAL的號碼
★上面例子的意思是:當所執(zhí)行的process接收到SIGHUP(1),SIGINT(2), SIGQUIT(3), SIGTERM(15)信號的時候,輸出get_messages然后終止程序。
※如果你要執(zhí)行復雜腳本或者命令的話,建議你把他寫成函數(shù)
比如:
#################################
#!/bin/sh
trap `echo_many_messages` 1 2 3 15
echo_many_messages(){
echo a
echo b
echo c
}
##################################
trap是采集信號的命令 可以百度一下格式 如果有信號發(fā)生就會執(zhí)行trap命令預定的處理函數(shù) 如果沒有設置就執(zhí)行信號的默認方式
trap是Linux的內(nèi)建命令,用于捕捉信號,trap命令可以指定收到某種信號時所執(zhí)行的命令。trap命令的格式如下:trap command sig1 sig2 ... sigN,當接收到sinN中任意一個信號時,執(zhí)行command命令,command命令完成后繼續(xù)接收到信號前的操作,直到腳本結(jié)束。?利用trap命令捕捉INT信號(即與Ctrl+c綁定的中斷信號)。trap還可以忽略某些信號,將command用空字符串代替即可,如trap "" TERM INT,忽略kill %n和Ctrl+c發(fā)送的信號(kill發(fā)送的是TERM信號)。Linux更強勁的殺死進程的命令:kill -9 進程號(或kill -9 %n作業(yè)號)等價與kill -KILL 進程號。
舉個例子:
最近小A需要生產(chǎn)2015年全年的KPI數(shù)據(jù)報表,現(xiàn)在小A已經(jīng)將生產(chǎn)腳本寫好了,生產(chǎn)腳本一次只能生產(chǎn)指定一天的KPI數(shù)據(jù),假設跑一次生產(chǎn)腳本需要5分鐘,那么:
如果是循環(huán)順序執(zhí)行,那么需要時間:5 * 365 = 1825 分鐘,約等于 6 天
如果是一次性放到linux后臺并發(fā)執(zhí)行,365個后臺任務,系統(tǒng)可承受不住哦!
既然不能一次性把365個任務放到linux后臺執(zhí)行,那么,能不能實現(xiàn)自動地每次將N個任務放到后臺并發(fā)執(zhí)行呢?當然是可以的啦。
#!?/bin/bash
source?/etc/profile;
#?-----------------------------
tempfifo=$$.fifo????????#?$$表示當前執(zhí)行文件的PID
begin_date=$1???????????#?開始時間
end_date=$2?????????????#?結(jié)束時間
if?[?$#?-eq?2?]?
then
if?[?"$begin_date"?\?"$end_date"?]
then
echo?"Error!?$begin_date?is?greater?than?$end_date"
exit?1;
fi
else
echo?"Error!?Not?enough?params."
echo?"Sample:?sh?loop_kpi?2015-12-01?2015-12-07"
exit?2;
fi
#?-----------------------------
trap?"exec?1000-;exec?1000-;exit?0"?2
mkfifo?$tempfifo
exec?1000$tempfifo
rm?-rf?$tempfifo
for?((i=1;?i=8;?i++))
do
echo?1000
done
while?[?$begin_date?!=?$end_date?]
do
read?-u1000
{
echo?$begin_date
hive?-f?kpi_report.sql?--hivevar?date=$begin_date
echo?1000
}?
begin_date=`date?-d?"+1?day?$begin_date"?+"%Y-%m-%d"`
done
wait
echo?"done!!!!!!!!!!"
第6~22行:比如:sh loop_kpi_report.sh 2015-01-01 2015-12-01:
$1表示腳本入?yún)⒌牡谝粋€參數(shù),等于2015-01-01
$2表示腳本入?yún)⒌牡诙€參數(shù),等于2015-12-01
$#表示腳本入?yún)⒌膫€數(shù),等于2
第13行用于比較傳入的兩個日期的大小,\是轉(zhuǎn)義
第26行:表示在腳本運行過程中,如果接收到Ctrl+C中斷命令,則關(guān)閉文件描述符1000的讀寫,并正常退出
exec 1000-;表示關(guān)閉文件描述符1000的寫
exec 1000-;表示關(guān)閉文件描述符1000的讀
trap是捕獲中斷命令
第27~29行:
第27行,創(chuàng)建一個管道文件
第28行,將文件描述符1000與FIFO進行綁定,讀的綁定,寫的綁定,則標識對文件描述符1000的所有操作等同于對管道文件$tempfifo的操作
第29行,可能會有這樣的疑問:為什么不直接使用管道文件呢?事實上這并非多此一舉,管道的一個重要特性,就是讀寫必須同時存在,缺失某一個操作,另一個操作就是滯留,而第28行的綁定文件描述符(讀、寫綁定)正好解決了這個問題
第31~34行:對文件描述符1000進行寫入操作。通過循環(huán)寫入8個空行,這個8就是我們要定義的后臺并發(fā)的線程數(shù)。為什么是寫空行而不是寫其它字符?因為管道文件的讀取,是以行為單位的
第37~42行:
第37行,read -u1000的作用就是讀取管道中的一行,在這里就是讀取一個空行;每次讀取管道就會減少一個空行
第39~41行,注意到第42行結(jié)尾的嗎?它表示進程放到linux后臺中執(zhí)行
第41行,執(zhí)行完后臺任務之后,往文件描述符1000中寫入一個空行。這是關(guān)鍵所在了,由于read -u1000每次操作,都會導致管道減少一個空行,當linux后臺放入了8個任務之后,由于文件描述符1000沒有可讀取的空行,將導致read -u1000一直處于等待。
網(wǎng)上有Webtop的破解方法,可在Webtop上安裝全功能版本的Linux。Webtop其實就是一個縮水版的ubuntu。
但是那個Ubuntu是有很大的限制的,和PC的Ubuntu區(qū)別很大。基本上是只能上網(wǎng)和使用非常有限的一些應用。要直接使用ubuntu得破解,而且還很麻煩。
我現(xiàn)在就等Webtop到手開工了。
至于Linux支持的CPU,那得看發(fā)行版。部分Linux發(fā)行版是支持目前所有的商用CPU的,從X86到ARM到IA64通吃,也有部分是高度專精的,如Arch就只支持X86.
不過我強烈不建議用Atrix來做音樂制作系統(tǒng),畢竟處理能力太弱,據(jù)說破解之后正常上網(wǎng)十分鐘手機就變得非常燙。音樂制作那就可想而知了。
還有,你要使用USB聲卡,還得考慮一下聲卡有沒有相應版本的驅(qū)動。
總之Webtop并不能算是全功能的筆記本,只能當上網(wǎng)本來用。我買Webtop也主要是因為筆記本太大太重,平時帶著上課做筆記不方便才買來,記筆記基本上只用得到瀏覽器和文本編輯器,這些都不是問題。但是音樂制作,還是用完整的PC為好。
=======================
另外Android并不能算是Linux的發(fā)行版。Android的機制是運行在Linux內(nèi)核上的一套虛擬機程序,其應用和直接基于Linux的本地應用程序有很大的不同,除非重編譯,二進制包是不通用的。
新聞名稱:linux捕獲信號命令 linux網(wǎng)絡抓包命令
本文來源:http://www.rwnh.cn/article10/ddgopdo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、全網(wǎng)營銷推廣、App設計、虛擬主機、品牌網(wǎng)站建設、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)