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

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 閱讀(1342) 評論(0)  編輯 收藏 引用 所屬分類: Linux_Coding
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(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>
            亚洲永久免费观看| 亚洲二区三区四区| 在线午夜精品| 欧美日韩hd| 一本色道久久综合亚洲91| 久久久噜噜噜久久久| 亚洲午夜精品一区二区| 国产精品xxxav免费视频| 夜夜嗨av色一区二区不卡| 亚洲精品在线免费| 欧美日本三区| 在线播放亚洲一区| 免费av成人在线| 欧美高清视频一区二区三区在线观看| 亚洲风情亚aⅴ在线发布| 亚洲国产一区在线| 欧美日产在线观看| 午夜国产一区| 久久久久久噜噜噜久久久精品| 亚洲大片在线观看| 亚洲毛片一区二区| 国产精品区一区二区三区| 欧美中文字幕视频在线观看| 欧美专区第一页| 91久久在线| 亚洲香蕉在线观看| 国产亚洲人成a一在线v站| 老司机免费视频一区二区三区| 久久久国产精品一区| 久久在线免费| 亚洲一区二区在线观看视频| 欧美一区二区啪啪| 日韩天堂在线视频| 亚洲手机成人高清视频| 精品电影在线观看| 亚洲精品欧美日韩专区| 欧美日韩你懂的| 久久久蜜桃一区二区人| 欧美—级a级欧美特级ar全黄| 午夜日韩福利| 牛牛精品成人免费视频| 亚洲欧美日韩国产精品| 久久综合给合久久狠狠狠97色69| 亚洲国产91精品在线观看| 一区二区三区成人| 亚洲国产成人av| 亚洲欧美日韩一区二区在线| 激情自拍一区| 亚洲欧美www| 一区二区精品在线| 久久免费视频网站| 一区二区三区波多野结衣在线观看| 午夜精品福利视频| 中文国产成人精品| 免费观看成人| 午夜一区二区三区在线观看| 欧美电影免费观看网站| 久久久久久久久久久久久女国产乱 | 国产精品白丝jk黑袜喷水| 美女网站久久| 国产日韩欧美在线一区| 一区二区三区国产| 亚洲免费精品| 亚洲性感激情| 亚洲一区在线直播| 欧美乱大交xxxxx| 亚洲大片av| 激情校园亚洲| 久久午夜色播影院免费高清| 欧美一区午夜精品| 国产精品综合不卡av| 一区二区三区成人精品| ●精品国产综合乱码久久久久| 亚洲欧美视频| 久久成人一区二区| 欧美深夜福利| 99视频精品| 亚洲午夜久久久久久久久电影网| 欧美欧美天天天天操| 国产欧美视频一区二区| 国产欧美一区二区精品性色| 亚洲视频专区在线| 久久成人免费电影| 在线观看欧美激情| 欧美大学生性色视频| 日韩一二在线观看| 香蕉久久国产| 亚洲电影天堂av| 欧美日本精品在线| 性色av一区二区三区红粉影视| 久久伊人精品天天| 亚洲一区二区三区四区在线观看| 一区二区91| 国产精品午夜春色av| 久久av一区二区三区| 亚洲成色777777在线观看影院| 亚洲免费精品| 国产一区二区三区黄| 欧美国产精品日韩| 亚洲综合色在线| 亚洲二区视频在线| 欧美专区福利在线| 亚洲精品你懂的| 国产精品一区二区a| 欧美成人黄色小视频| 亚洲一区图片| 亚洲人成绝费网站色www| 欧美在线观看视频在线| 亚洲激情欧美| 国产欧美日韩综合精品二区| 欧美91福利在线观看| 亚洲欧美精品在线| 亚洲精品欧美日韩| 欧美成人久久| 久久久99精品免费观看不卡| 99综合在线| 亚洲国产精品小视频| 国产精品一区一区三区| 欧美老女人xx| 欧美69视频| 久久香蕉国产线看观看av| 亚洲午夜久久久| 日韩视频精品在线观看| 男人的天堂成人在线| 久久久精品国产免费观看同学| 亚洲一区二区三区国产| 亚洲欧洲日韩综合二区| 伊人久久成人| 国模精品一区二区三区| 国产精品色婷婷| 欧美午夜一区二区| 欧美日韩三级在线| 欧美精品1区| 欧美成人精品高清在线播放| 久久久久综合一区二区三区| 欧美亚洲一区| 欧美亚洲综合另类| 性亚洲最疯狂xxxx高清| 亚洲综合视频网| 午夜免费日韩视频| 欧美一区二区三区四区夜夜大片 | 国产精品久久久久久久久久三级| 欧美激情在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久本道综合色狠狠五月| 性色一区二区| 欧美伊人久久久久久久久影院| 先锋影音国产精品| 久久久久www| 卡一卡二国产精品| 欧美精品一区二区三区高清aⅴ| 欧美成人在线网站| 欧美日韩三级电影在线| 国产精品入口日韩视频大尺度| 国产欧美高清| 亚洲第一福利社区| 亚洲卡通欧美制服中文| 亚洲一区二区毛片| 久久精彩免费视频| 欧美aⅴ一区二区三区视频| 亚洲激情视频网站| 在线一区观看| 久久不射2019中文字幕| 欧美高清影院| 国产精品日本精品| 在线观看成人一级片| 在线视频日本亚洲性| 久久av一区二区三区| 欧美刺激午夜性久久久久久久| 欧美激情网友自拍| 国产一区二区三区久久 | 亚洲国产精品一区二区久| 日韩视频免费观看高清完整版| 亚洲一区二区综合| 久久免费视频这里只有精品| 欧美日韩国产精品一卡| 国产色视频一区| 亚洲精品在线视频| 欧美有码在线观看视频| 亚洲二区视频在线| 亚洲欧美日韩一区二区三区在线| 久久这里有精品视频| 欧美午夜免费电影| 亚洲国产老妈| 欧美在线一区二区| 欧美激情一区二区三区四区| 亚洲综合视频一区| 欧美日韩国产探花| 永久91嫩草亚洲精品人人| 亚洲伊人伊色伊影伊综合网 | 亚洲免费一在线| 亚洲国产高清在线| 久久国产精品毛片| 欧美三级视频在线观看| 亚洲电影免费观看高清| 欧美一区=区| 99re热精品| 欧美黄色小视频| 伊人天天综合| 久久久7777|