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

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>
            久久久精品五月天| 久久久99精品免费观看不卡| 欧美激情一区二区三区| 久久一区精品| 欧美jizz19hd性欧美| 欧美国产日韩a欧美在线观看| 蘑菇福利视频一区播放| 欧美国产在线视频| 国产精品二区二区三区| 国产精品一二三四| 影音先锋亚洲电影| 亚洲午夜电影网| 欧美在线观看日本一区| 欧美~级网站不卡| 国产综合欧美在线看| 精品福利免费观看| 国产乱码精品一区二区三区不卡| 国产欧美日韩视频一区二区| 精品69视频一区二区三区| 亚洲精品视频二区| 久久成人国产| 亚洲精品免费一二三区| 亚洲愉拍自拍另类高清精品| 久久久久久欧美| 欧美午夜视频网站| 精品成人在线| 午夜精品在线看| 亚洲级视频在线观看免费1级| 亚洲午夜伦理| 欧美韩日亚洲| 黄色小说综合网站| 亚洲一区观看| 欧美激情精品久久久久久久变态 | 欧美大片在线看| 亚洲中无吗在线| 欧美日韩欧美一区二区| 在线播放中文一区| 欧美一区二区视频免费观看| 亚洲人体大胆视频| 老**午夜毛片一区二区三区| 欧美大片免费观看| 亚洲婷婷综合色高清在线| 亚洲高清三级视频| 亚洲欧美日韩国产中文| 亚洲国产成人91精品| 欧美在线首页| 国产日韩在线不卡| 午夜伦理片一区| 一本久久综合亚洲鲁鲁五月天| 毛片基地黄久久久久久天堂| 国产综合自拍| 久久久久久久久蜜桃| 亚洲一区二区在线免费观看| 欧美日韩亚洲另类| 国产精品99久久99久久久二8| 欧美激情偷拍| 欧美11—12娇小xxxx| 亚洲黄一区二区| 亚洲电影免费观看高清| 美女视频黄免费的久久| 在线观看久久av| 欧美成人精品不卡视频在线观看 | 欧美日韩中文字幕| 日韩视频一区二区三区在线播放| 欧美激情久久久久| 欧美国产在线视频| 一区二区三区福利| 一区二区三区日韩精品视频| 欧美日韩中文字幕| 午夜日韩在线| 午夜精品福利视频| 激情视频一区| 亚洲国产精品久久久久婷婷884 | 欧美伊人久久久久久久久影院| 一本色道婷婷久久欧美| 国产精品激情av在线播放| 亚洲欧美日韩综合国产aⅴ| 亚洲一区自拍| 在线观看国产一区二区| 亚洲欧洲免费视频| 国产精品电影网站| 久久久97精品| 欧美精品一区二区精品网| 亚洲中字黄色| 久久露脸国产精品| 一区二区日韩免费看| 午夜国产精品视频免费体验区| 精品动漫3d一区二区三区| 亚洲国产欧美日韩精品| 国产精品久久久久aaaa樱花| 久久久噜噜噜久久人人看| 欧美成人官网二区| 午夜在线精品| 免费日韩视频| 欧美永久精品| 欧美人在线观看| 国产一区二区三区最好精华液| 亚洲黄色精品| 这里只有精品丝袜| 黄色小说综合网站| 亚洲视频福利| 亚洲精品看片| 性做久久久久久免费观看欧美| 亚洲黄色影院| 午夜一区不卡| 亚洲特级毛片| 模特精品裸拍一区| 久久综合色一综合色88| 国产精品久久久久aaaa九色| 亚洲电影在线| 一区二区亚洲精品国产| 亚洲天堂免费在线观看视频| 亚洲人成在线播放网站岛国| 午夜老司机精品| 在线一区二区视频| 欧美成人免费一级人片100| 久久免费精品视频| 国产伦精品一区二区三区免费| 亚洲欧洲一区二区三区| 在线日韩中文| 久久国产乱子精品免费女| 午夜精品成人在线| 欧美日韩视频一区二区| 亚洲国产精品第一区二区三区| 韩国三级电影久久久久久| 亚洲影院污污.| 亚洲免费在线视频一区 二区| 欧美精品一区在线观看| 亚洲国产欧美另类丝袜| 亚洲第一主播视频| 久久综合中文色婷婷| 美女成人午夜| 亚洲电影第三页| 久热精品在线视频| 农村妇女精品| 亚洲人成网站在线观看播放| 美女亚洲精品| 亚洲激情另类| 亚洲一级片在线观看| 国产精品成人aaaaa网站| 日韩视频在线免费| 一区二区日韩免费看| 欧美色道久久88综合亚洲精品| 一区二区三区高清视频在线观看| 亚洲网友自拍| 国产日韩成人精品| 久久精品在这里| 亚洲二区三区四区| a91a精品视频在线观看| 欧美三级乱码| 午夜精品999| 欧美黄色视屏| 亚洲一区三区电影在线观看| 国产精品ⅴa在线观看h| 香蕉免费一区二区三区在线观看| 久久久999成人| 亚洲国产精品毛片| 国产精品v亚洲精品v日韩精品 | 久久久精品一品道一区| 欧美二区在线看| 亚洲国产另类久久精品| 亚洲三级性片| 欧美视频中文在线看| 亚洲一区影院| 欧美成人精品福利| 亚洲一区中文| 在线国产精品播放| 欧美三日本三级少妇三2023| 午夜一区在线| 亚洲精品国精品久久99热| 亚洲男女自偷自拍| 一区二区在线观看视频| 欧美日韩国产色综合一二三四| 亚洲综合久久久久| 亚洲国产精选| 久久久久久电影| 中文一区字幕| 亚洲国产精品成人综合| 国产精品日本精品| 欧美成人日韩| 久久爱www.| 一区二区欧美日韩| 亚洲国产成人porn| 久久久午夜视频| 亚洲欧美韩国| 99国产精品久久久久老师| 国产在线日韩| 国产精品区一区二区三区| 欧美国产精品| 久久夜色精品亚洲噜噜国产mv| 亚洲一区二区三| 亚洲激情欧美| 欧美激情五月| 女人天堂亚洲aⅴ在线观看| 亚洲欧美日韩中文视频| 9人人澡人人爽人人精品| 亚洲国产精品免费| 激情综合久久| 激情视频一区二区| 国产一区二区三区日韩|