青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

在有些情況下,我們不希望自己的shell腳本在運行時刻被中斷,比如說我們寫得shell腳
本設為某一用戶的默認shell,使這一用戶進入系統后只能作某一項工作,如數據庫備份, 我
們可不希望用戶使用ctrl+C之類便進入到shell狀態,做我們不希望做的事情。這便用到了信號
處理。

kill -l可以列出系統的信號名稱,如下:
zj@zj:~/Script/test$ kill -l
 1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL
 5) SIGTRAP     6) SIGABRT     7) SIGBUS     8) SIGFPE
 9) SIGKILL    10) SIGUSR1    11) SIGSEGV    12) SIGUSR2
13) SIGPIPE    14) SIGALRM    15) SIGTERM    16) SIGSTKFLT
17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU
25) SIGXFSZ    26) SIGVTALRM    27) SIGPROF    28) SIGWINCH
29) SIGIO    30) SIGPWR    31) SIGSYS    34) SIGRTMIN
35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3    38) SIGRTMIN+4
39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12
47) SIGRTMIN+13    48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14
51) SIGRTMAX-13    52) SIGRTMAX-12    53) SIGRTMAX-11    54) SIGRTMAX-10
55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7    58) SIGRTMAX-6
59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX   


通常我們需要忽略的信號有四個,即:HUP, INT, QUIT, TSTP,也就是信號1, 2, 3, 24
使用這樣的語句可以使這些中斷信號被忽略:
trap "" 1 2 3 24 或 trap "" HUP INT QUIT TSTP
用 trap :1 2 3 24 或 trap HUP INT QUIT TSTP使其回復默認值。
用stty -a可以列出中斷信號與鍵盤的對應,分別執行上面的命令后,運行
tail -f /etc/passwd, 然后嘗試用鍵盤中斷,試試兩種情況(默認和忽略)下有何不同。

zj@zj:~/Script/test$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

 

更方便的是我們可以用在shell中用trap定義我們自己的信號處理程序,就象在c中用
signal一樣,

如:trap “echo 'GO Away'” INT

eg:

zj@zj:~/Script/test$ cat reboot.sh
#/bin/bash

i=0;
while(( 1 ))
do
echo "hello $i"
sleep 1
(( i++ ))
trap "bash $0 && kill $$" QUIT
done
echo haha
zj@zj:~/Script/test$ ./reboot.sh
hello 0
hello 1
hello 2
hello 3
Quit
hello 0
hello 1
hello 2
Quit
hello 0
這樣^\就可以reboot程序了^_^不知道linux重啟是不是trap到某個信號了就這樣...當然是類似,這個腳本太east了.有時間加機會了看看^_^

附:

Linux信號簡介  
1) SIGHUP 本信號在用戶終端連接(正常或非正常)結束時發出, 通常是在終端的控制進程結束時, 通知同一session內的各個作業, 這時它們與控制終端不再關聯.   
2) SIGINT 程序終止(interrupt)信號, 在用戶鍵入INTR字符(通常是Ctrl-C)時發出   
3) SIGQUIT 和SIGINT類似, 但由QUIT字符(通常是Ctrl-\)來控制. 進程在因收到SIGQUIT退出時會產生core文件, 在這個意義上類似于一個程序錯誤信號.   
4) SIGILL 執行了非法指令. 通常是因為可執行文件本身出現錯誤, 或者試圖執行數據段. 堆棧溢出時也有可能產生這個信號.   
5) SIGTRAP 由斷點指令或其它trap指令產生. 由debugger使用.   
6) SIGABRT 程序自己發現錯誤并調用abort時產生.   
7) SIGIOT 在PDP-11上由iot指令產生, 在其它機器上和SIGABRT一樣.   
8) SIGBUS 非法地址, 包括內存地址對齊(alignment)出錯. eg: 訪問一個四個字長的整數, 但其地址不是4的倍數.   
9) SIGFPE 在發生致命的算術運算錯誤時發出. 不僅包括浮點運算錯誤, 還包括溢出及除數為0等其它所有的算術的錯誤.   
10) SIGKILL 用來立即結束程序的運行. 本信號不能被阻塞, 處理和忽略.   
11) SIGUSR1 留給用戶使用   
12) SIGSEGV 試圖訪問未分配給自己的內存, 或試圖往沒有寫權限的內存地址寫數據.   
13) SIGUSR2 留給用戶使用   
14) SIGPIPE Broken pipe   
15) SIGALRM 時鐘定時信號, 計算的是實際的時間或時鐘時間. alarm函數使用該信號.   
16) SIGTERM 程序結束(terminate)信號, 與SIGKILL不同的是該信號可以被阻塞和處理. 通常用來要求程序自己正常退出. shell命令kill缺省產生這個信號.   
17) SIGCHLD 子進程結束時, 父進程會收到這個信號.   
18) SIGCONT 讓一個停止(stopped)的進程繼續執行. 本信號不能被阻塞. 可以用一個handler來讓程序在由stopped狀態變為繼續執行時完成特定的工作. 例如, 重新顯示提示符   
19) SIGSTOP 停止(stopped)進程的執行. 注意它和terminate以及interrupt的區別: 該進程還未結束, 只是暫停執行. 本信號不能被阻塞, 處理或忽略.   
20) SIGTSTP 停止進程的運行, 但該信號可以被處理和忽略. 用戶鍵入SUSP字符時(通常是Ctrl-Z)發出這個信號   
21) SIGTTIN 當后臺作業要從用戶終端讀數據時, 該作業中的所有進程會收到SIGTTIN信號. 缺省時這些進程會停止執行.   
22) SIGTTOU 類似于SIGTTIN, 但在寫終端(或修改終端模式)時收到.   
23) SIGURG 有緊急數據或out-of-band數據到達socket時產生.   
24) SIGXCPU 超過CPU時間資源限制. 這個限制可以由getrlimit/setrlimit來讀取/改變   
25) SIGXFSZ 超過文件大小資源限制.   
26) SIGVTALRM 虛擬時鐘信號. 類似于SIGALRM, 但是計算的是該進程占用的CPU時間.   
27) SIGPROF 類似于SIGALRM/SIGVTALRM, 但包括該進程用的CPU時間以及系統調用的時間.   
28) SIGWINCH 窗口大小改變時發出.   
29) SIGIO 文件描述符準備就緒, 可以開始進行輸入/輸出操作.   
30) SIGPWR Power failure

from:
http://blog.chinaunix.net/u2/76292/showart_1286809.html

posted on 2009-12-11 23:44 chatler 閱讀(1345) 評論(0)  編輯 收藏 引用 所屬分類: Linux_Coding
<2009年11月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲影视在线| 91久久精品国产| 亚洲欧美一区二区激情| 亚洲人成啪啪网站| 欧美激情一二三区| 欧美一级播放| 亚洲中无吗在线| 欧美一区二区精品| 国产精品视频成人| 亚洲国产欧美日韩精品| 欧美国产日韩在线| 亚洲私人影院| 一区二区三区精品在线| 亚洲人成网站在线播| 美国成人毛片| 国产精品日韩精品欧美在线| 在线观看日韩av电影| 亚洲狼人精品一区二区三区| 一区免费观看视频| 亚洲一区二区三区精品在线| 久久一区二区三区av| 久久久国产精品一区二区中文| 一区二区三区欧美亚洲| 免费成人av资源网| 国产精品日本欧美一区二区三区| 激情小说亚洲一区| 欧美中日韩免费视频| 欧美在线视频免费播放| 久久精品视频免费观看| 亚洲最黄网站| 一区二区三区黄色| 免费视频一区| 久久国产色av| 亚洲电影免费在线| 久久野战av| 老牛嫩草一区二区三区日本| 亚洲国产黄色| 亚洲精品中文字| 性欧美videos另类喷潮| 久久综合激情| 最新国产乱人伦偷精品免费网站| 美女国产精品| 欧美日韩另类国产亚洲欧美一级| 99视频一区二区三区| 夜夜嗨一区二区| 国产欧美在线视频| 美日韩精品免费观看视频| 亚洲午夜小视频| 亚洲激情另类| 国产精品揄拍500视频| 久久精品30| 欧美精品一区二区在线播放| 欧美一级一区| 欧美freesex8一10精品| 香蕉成人伊视频在线观看| 蜜臀a∨国产成人精品| 西西裸体人体做爰大胆久久久| 欧美一级视频一区二区| 91久久在线播放| 久久国产精品99精品国产| 一区二区三区你懂的| 久久青青草综合| 久久先锋资源| 国产视频丨精品|在线观看| 亚洲精品久久久久久久久久久| 亚洲视频久久| 欧美一级精品大片| 激情综合网激情| 巨胸喷奶水www久久久免费动漫| 欧美精品v日韩精品v韩国精品v| 美日韩精品免费| 欧美国产亚洲另类动漫| 亚洲欧美激情四射在线日| 免费在线亚洲| 99re66热这里只有精品4| 这里只有精品视频| 欧美日韩一区二区三| 一区二区免费在线观看| 亚洲免费中文| 国际精品欧美精品| 久久人人97超碰国产公开结果| 老司机一区二区| 性18欧美另类| 亚洲国产毛片完整版 | 日韩天堂av| 欧美日韩视频在线一区二区| 亚洲国产日韩一级| 午夜精品剧场| 激情欧美一区二区三区| 欧美精品久久一区| 久久黄色小说| 在线亚洲美日韩| 欧美成人精品h版在线观看| 亚洲天堂av在线免费| 在线电影一区| 欧美亚洲专区| 欧美成人精品不卡视频在线观看 | 亚洲一区亚洲二区| 亚洲电影免费观看高清完整版在线| 一区二区三区视频在线看| 日韩午夜高潮| 国产精品magnet| 国产精品成人观看视频国产奇米| 国产精品久久久免费| 1000部国产精品成人观看| 91久久精品国产91性色| 一区二区三区视频在线看| 国产精品羞羞答答| 欧美精品一区二区三区久久久竹菊| 香蕉久久夜色精品| 午夜精品www| 亚洲一区二区视频在线| 欧美成人精品一区| 欧美伦理在线观看| 欧美xx69| 欧美久久久久久久| 欧美日韩国产三区| 国产精品日韩专区| 国产女优一区| 国产一区二区在线免费观看| 欧美大胆人体视频| 亚洲欧洲美洲综合色网| 好看的亚洲午夜视频在线| 欧美日韩精品是欧美日韩精品| 久久久精品日韩欧美| 美女网站久久| 亚洲国产精品一区二区www在线| 91久久一区二区| 亚洲人成啪啪网站| 亚洲另类在线视频| 亚洲欧美三级伦理| 欧美在线一区二区| 久久精品二区三区| 久久久久久亚洲精品不卡4k岛国| 久久精品国产精品| 欧美激情女人20p| 亚洲一区视频在线观看视频| 欧美在线免费观看| 欧美精品久久久久久久| 国产精品高潮呻吟久久av无限| 国产精品久久久久久超碰| 国产精品日韩欧美一区二区三区| 欧美午夜不卡| 久久狠狠一本精品综合网| 免费成人你懂的| 激情一区二区| 久久久久免费观看| 午夜一区二区三视频在线观看| 欧美紧缚bdsm在线视频| 最新国产成人av网站网址麻豆| 亚洲欧美激情诱惑| 99国产精品99久久久久久粉嫩| 亚洲天堂av在线免费| 亚洲精品在线视频观看| 欧美成人免费网站| 亚洲专区一区| 亚洲午夜久久久久久尤物 | 亚洲一区二区三区在线看| 欧美亚州一区二区三区| 亚洲女爱视频在线| 亚洲视频综合| 国产亚洲精品aa| 久久综合九色九九| 免费短视频成人日韩| 99riav久久精品riav| 亚洲一区二区四区| 亚洲国产精品一区二区www| 99re热这里只有精品视频| 国产精品红桃| 亚洲国产精彩中文乱码av在线播放| 久久综合九色综合网站| 亚洲视频电影图片偷拍一区| 欧美亚洲免费高清在线观看| 91久久久精品| 亚洲欧美一区二区三区久久 | 亚洲福利在线视频| 久久成人这里只有精品| 欧美伊人久久久久久午夜久久久久| 一区二区三区欧美| 国产深夜精品| 99国产精品久久久久久久久久| 国产综合视频| 亚洲一区二区网站| 久久久免费精品视频| 性色av一区二区三区红粉影视| 欧美国产日韩一二三区| 蜜臀va亚洲va欧美va天堂| 国产日韩欧美制服另类| 亚洲一区中文| 久久久噜噜噜久久狠狠50岁| 欧美成在线观看| 亚洲国产日韩精品| 毛片基地黄久久久久久天堂| 奶水喷射视频一区| 日韩一区二区精品在线观看| 欧美高清视频一二三区| 亚洲精品国产系列| 亚洲欧美不卡| 欧美三级不卡| 亚洲一区二区三区精品在线|