一起学shell之(九-2)拼写检查、进程
?#----------------------------------------------------------#
# ====>?紅色字體 -特指煮酒個(gè)人所見(jiàn)。加粗則為需要重點(diǎn)注意。?#
# ====>?藍(lán)色加粗 -特指與本文相關(guān)人員,包括參與修正的朋友。?# # ====> 煮酒品茶 -Http://cwtea.blog.51cto.com ? ? ? ?? # #----------------------------------------------------------#第一部分:
一起學(xué)shell之(九)拼寫(xiě)檢查、進(jìn)程
http://cwtea.blog.51cto.com/4500217/879968
Linux信號(hào)簡(jiǎn)介?
1)?SIGHUP?本信號(hào)在用戶(hù)終端連接(正常或非正常)結(jié)束時(shí)發(fā)出,?通常是在終端的控制進(jìn)程結(jié)束時(shí),?通知同一session內(nèi)的各個(gè)作業(yè),?這時(shí)它們與控制終端不再關(guān)聯(lián).?
2)?SIGINT?程序終止(interrupt)信號(hào),?在用戶(hù)鍵入INTR字符(通常是Ctrl-C)時(shí)發(fā)出?
3)?SIGQUIT?和SIGINT類(lèi)似,?但由QUIT字符(通常是Ctrl-\)來(lái)控制.?進(jìn)程在因收到SIGQUIT退出時(shí)會(huì)產(chǎn)生core文件,?在這個(gè)意義上類(lèi)似于一個(gè)程序錯(cuò)誤信號(hào).?
4)?SIGILL?執(zhí)行了非法指令.?通常是因?yàn)榭蓤?zhí)行文件本身出現(xiàn)錯(cuò)誤,?或者試圖執(zhí)行數(shù)據(jù)段.?堆棧溢出時(shí)也有可能產(chǎn)生這個(gè)信號(hào).?
5)?SIGTRAP?由斷點(diǎn)指令或其它trap指令產(chǎn)生.?由debugger使用.?
6)?SIGABRT?程序自己發(fā)現(xiàn)錯(cuò)誤并調(diào)用abort時(shí)產(chǎn)生.?
7)?SIGIOT?在PDP-11上由iot指令產(chǎn)生,?在其它機(jī)器上和SIGABRT一樣.?
8)?SIGBUS?非法地址,?包括內(nèi)存地址對(duì)齊(alignment)出錯(cuò).?eg:?訪(fǎng)問(wèn)一個(gè)四個(gè)字長(zhǎng)的整數(shù),?但其地址不是4的倍數(shù).?
9)?SIGFPE?在發(fā)生致命的算術(shù)運(yùn)算錯(cuò)誤時(shí)發(fā)出.?不僅包括浮點(diǎn)運(yùn)算錯(cuò)誤,?還包括溢出及除數(shù)為0等其它所有的算術(shù)的錯(cuò)誤.?
10)?SIGKILL?用來(lái)立即結(jié)束程序的運(yùn)行.?本信號(hào)不能被阻塞,?處理和忽略.?
11)?SIGUSR1?留給用戶(hù)使用?
12)?SIGSEGV?試圖訪(fǎng)問(wèn)未分配給自己的內(nèi)存,?或試圖往沒(méi)有寫(xiě)權(quán)限的內(nèi)存地址寫(xiě)數(shù)據(jù).?
13)?SIGUSR2?留給用戶(hù)使用?
14)?SIGPIPE?Broken?pipe?
15)?SIGALRM?時(shí)鐘定時(shí)信號(hào),?計(jì)算的是實(shí)際的時(shí)間或時(shí)鐘時(shí)間.?alarm函數(shù)使用該信號(hào).?
16)?SIGTERM?程序結(jié)束(terminate)信號(hào),?與SIGKILL不同的是該信號(hào)可以被阻塞和處理.?通常用來(lái)要求程序自己正常退出.?shell命令kill缺省產(chǎn)生這個(gè)信號(hào).?
17)?SIGCHLD?子進(jìn)程結(jié)束時(shí),?父進(jìn)程會(huì)收到這個(gè)信號(hào).?
18)?SIGCONT?讓一個(gè)停止(stopped)的進(jìn)程繼續(xù)執(zhí)行.?本信號(hào)不能被阻塞.?可以用一個(gè)handler來(lái)讓程序在由stopped狀態(tài)變?yōu)槔^續(xù)執(zhí)行時(shí)完成特定的工作.?例如,?重新顯示提示符?
19)?SIGSTOP?停止(stopped)進(jìn)程的執(zhí)行.?注意它和terminate以及interrupt的區(qū)別:?該進(jìn)程還未結(jié)束,?只是暫停執(zhí)行.?本信號(hào)不能被阻塞,?處理或忽略.?
20)?SIGTSTP?停止進(jìn)程的運(yùn)行,?但該信號(hào)可以被處理和忽略.?用戶(hù)鍵入SUSP字符時(shí)(通常是Ctrl-Z)發(fā)出這個(gè)信號(hào)?
21)?SIGTTIN?當(dāng)后臺(tái)作業(yè)要從用戶(hù)終端讀數(shù)據(jù)時(shí),?該作業(yè)中的所有進(jìn)程會(huì)收到SIGTTIN信號(hào).?缺省時(shí)這些進(jìn)程會(huì)停止執(zhí)行.?
22)?SIGTTOU?類(lèi)似于SIGTTIN,?但在寫(xiě)終端(或修改終端模式)時(shí)收到.?
23)?SIGURG?有緊急數(shù)據(jù)或out-of-band數(shù)據(jù)到達(dá)socket時(shí)產(chǎn)生.?
24)?SIGXCPU?超過(guò)CPU時(shí)間資源限制.?這個(gè)限制可以由getrlimit/setrlimit來(lái)讀取/改變?
25)?SIGXFSZ?超過(guò)文件大小資源限制.?
26)?SIGVTALRM?虛擬時(shí)鐘信號(hào).?類(lèi)似于SIGALRM,?但是計(jì)算的是該進(jìn)程占用的CPU時(shí)間.?
27)?SIGPROF?類(lèi)似于SIGALRM/SIGVTALRM,?但包括該進(jìn)程用的CPU時(shí)間以及系統(tǒng)調(diào)用的時(shí)間.?
28)?SIGWINCH?窗口大小改變時(shí)發(fā)出.?
29)?SIGIO?文件描述符準(zhǔn)備就緒,?可以開(kāi)始進(jìn)行輸入/輸出操作.?
30)?SIGPWR?Power?failure?
刪除進(jìn)程:
必須要知道四個(gè)信號(hào):ABRT(中斷)、HUP(擱置)、KILL、TERM(終結(jié))
ABRT有點(diǎn)類(lèi)似TERM,不過(guò)它會(huì)抵制清除的操作,并產(chǎn)生進(jìn)程內(nèi)存影像的副本,將其置于核心,即program,core或core.PID中。
HUP信號(hào)有點(diǎn)類(lèi)似要求中止,但是對(duì)于很多daemon來(lái)說(shuō),它時(shí)常表示進(jìn)程應(yīng)先停止手頭工作,然后準(zhǔn)備處理新的工作,好像它重新被啟動(dòng)一樣。Nginx靜默重啟嘛?
KILL與STOP,這兩個(gè)信號(hào)一定會(huì)立即被傳送,然而對(duì)于休眠進(jìn)程而言、這根據(jù)shell實(shí)例與操作系統(tǒng)而定,大部分的其他信號(hào)都只在進(jìn)程醒著(wake?up)的時(shí)候才傳送。
傳遞信號(hào)事實(shí)上是會(huì)有延遲的。
查看HUP與TREM工作
休眠循環(huán)腳本:looper
煮酒品茶:搞暈了,四種信號(hào),傳送相關(guān)信號(hào)給程序,然后程序執(zhí)行相關(guān)信號(hào)。繼續(xù)循環(huán)?回頭再好好摸索摸索。
延遲的進(jìn)程度調(diào)
Sleep:延遲片刻
At:延遲到特定時(shí)間
?
Batch:為資源控制而延遲
Crontab:在指定時(shí)間再執(zhí)行
crontabs
crontab?是用來(lái)讓使用者在固定時(shí)間或固定間隔執(zhí)行程序之用,換句話(huà)說(shuō),也就是類(lèi)似使用者的時(shí)程表。-u?user?是指設(shè)定指定?user?的時(shí)程表,這個(gè)前提是你必須要有其權(quán)限(比如說(shuō)是?root)才能夠指定他人的時(shí)程表。如果不使用?-u?user?的話(huà),就是表示設(shè)定自己的時(shí)程表。?
取自:http://www.linuxso.com/command/crontab.html?
常用參數(shù):
crontab???-l???//查看當(dāng)前用戶(hù)下的cron任務(wù)
crontab?-e??//編輯當(dāng)前用戶(hù)的定時(shí)任務(wù)
crontab?-u??linuxso??-e??//編輯用戶(hù)linuxso的定時(shí)任務(wù)
具體用法和格式:
?
基本格式?:
* * * * * command
分 時(shí) 日 月 周 命令
?
/proc文件系統(tǒng)
通過(guò)一個(gè)特殊文件設(shè)備,訪(fǎng)問(wèn)內(nèi)枋里的數(shù)據(jù),也就是在/proc目錄內(nèi)實(shí)例一個(gè)標(biāo)準(zhǔn)的文件系統(tǒng)界面,每個(gè)執(zhí)行中的進(jìn)程都會(huì)在那里擁有一個(gè)子目錄,以進(jìn)程編號(hào)命名,且在每個(gè)子目錄里面是各式各樣小文件的內(nèi)核數(shù)據(jù)。
<完>
本文轉(zhuǎn)自 煮酒品茶 51CTO博客,原文鏈接:http://blog.51cto.com/cwtea/879971,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的一起学shell之(九-2)拼写检查、进程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安全狗护航金砖厦门会晤 圆满完成任务
- 下一篇: [转载] MFC绘制动态曲线,用双缓冲绘