ubuntu下,也就是linux下,通常會用kill -事件編號實現(xiàn)。 你查一下LINUX下的事件就明白了。

嘉善網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),嘉善網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為嘉善1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的嘉善做網(wǎng)站的公司定做!
kill 進程號 實現(xiàn)上是發(fā)了一個信號給指定的進程。 在python里,也可以加載事件處理模塊,處理來自其它程序發(fā)過來的信號, 當(dāng)然你可以用KILL工具發(fā)信號過來。
ctrl+d也是一個信號,ctrl+c也是一個。具體信號編碼我不記得了。不過以前我做多進程管理時就是使用這個方法。 好象信號還可以帶參數(shù)過來。
你打開python的幫助。看看signal這個模塊。我把它的例子拿過來。對你有用不
import?signal,?os
def?handler(signum,?frame):
print?'Signal?handler?called?with?signal',?signum
raise?IOError("Couldn't?open?device!")
#?Set?the?signal?handler?and?a?5-second?alarm
signal.signal(signal.SIGALRM,?handler)
signal.alarm(5)
#?This?open()?may?hang?indefinitely
fd?=?os.open('/dev/ttyS0',?os.O_RDWR)
signal.alarm(0)??????????#?Disable?the?alarm
下面是我找到的一些資料。也許有用。
信號的概念
信號(signal)--?????進程之間通訊的方式,是一種軟件中斷。一個進程一旦接收到信號就會打斷原來的程序執(zhí)行流程來處理信號。
幾個常用信號:
SIGINT?????終止進程??中斷進程??(control+c)
SIGTERM???終止進程?????軟件終止信號
SIGKILL???終止進程?????殺死進程
SIGALRM?鬧鐘信號
進程結(jié)束信號?SIGTERM和SIGKILL的區(qū)別
SIGTERM比較友好,進程能捕捉這個信號,根據(jù)您的需要來關(guān)閉程序。在關(guān)閉程序之前,您可以結(jié)束打開的記錄文件和完成正在做的任務(wù)。在某些情況下,假如進程正在進行作業(yè)而且不能中斷,那么進程可以忽略這個SIGTERM信號。
對于SIGKILL信號,進程是不能忽略的。這是一個?“我不管您在做什么,立刻停止”的信號。假如您發(fā)送SIGKILL信號給進程,Linux就將進程停止在那里。
發(fā)送信號一般有兩種原因:
1(被動式)??內(nèi)核檢測到一個系統(tǒng)事件.例如子進程退出會像父進程發(fā)送SIGCHLD信號.鍵盤按下control+c會發(fā)送SIGINT信號
2(主動式)??通過系統(tǒng)調(diào)用kill來向指定進程發(fā)送信號
linux操作系統(tǒng)提供的信號
[100003@oss235 myppt]$ 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
Python提供的信號
Python 2.4.3 (#1, Jun 11 2009, 14:09:58)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import signal
dir(signal)
['NSIG', 'SIGABRT', 'SIGALRM', 'SIGBUS', 'SIGCHLD', 'SIGCLD',
'SIGCONT', 'SIGFPE', 'SIGHUP', 'SIGILL', 'SIGINT', 'SIGIO', 'SIGIOT',
'SIGKILL', 'SIGPIPE', 'SIGPOLL', 'SIGPROF', 'SIGPWR', 'SIGQUIT',
'SIGRTMAX', 'SIGRTMIN', 'SIGSEGV', 'SIGSTOP', 'SIGSYS', 'SIGTERM',
'SIGTRAP', 'SIGTSTP', 'SIGTTIN', 'SIGTTOU', 'SIGURG', 'SIGUSR1',
'SIGUSR2', 'SIGVTALRM', 'SIGWINCH', 'SIGXCPU', 'SIGXFSZ', 'SIG_DFL',
'SIG_IGN', '__doc__', '__name__', 'alarm', 'default_int_handler',
'getsignal', 'pause', 'signal']
操作系統(tǒng)規(guī)定了進程收到信號以后的默認(rèn)行為
但是,我們可以通過綁定信號處理函數(shù)來修改進程收到信號以后的行為
有兩個信號是不可更改的SIGTOP和SIGKILL
綁定信號處理函數(shù)
import os ?
import signal ?
from time import sleep ?
def onsignal_term(a,b): ?
print '收到SIGTERM信號' ?
#這里是綁定信號處理函數(shù),將SIGTERM綁定在函數(shù)onsignal_term上面 ?
signal.signal(signal.SIGTERM,onsignal_term) ?
def onsignal_usr1(a,b): ?
print '收到SIGUSR1信號' ?
#這里是綁定信號處理函數(shù),將SIGUSR1綁定在函數(shù)onsignal_term上面 ?
signal.signal(signal.SIGUSR1,onsignal_usr1) ?
while 1: ?
print '我的進程id是',os.getpid() ?
sleep(10) ?
運行該程序。然后通過另外一個進程來發(fā)送信號。
發(fā)送信號
發(fā)送信號的代碼如下:
import os ?
import signal ?
#發(fā)送信號,16175是前面那個綁定信號處理函數(shù)的pid,需要自行修改 ?
os.kill(16175,signal.SIGTERM) ?
#發(fā)送信號,16175是前面那個綁定信號處理函數(shù)的pid,需要自行修改 ?
os.kill(16175,signal.SIGUSR1)
很簡單的問題,其實只要好好看完譚老的書,這些問題就不在是問題了。加油吧。
1.這兩個是對函數(shù)的聲明,double factorial(int) double 是函數(shù)的返回值類型, int是函數(shù)參數(shù)的類型,這里只有一個參數(shù)。另外一個也是這個意思。不過Term函數(shù)的參數(shù)是有兩個參數(shù),double類型和int類型。因為程序中有對自定義函數(shù)的引用,所以首先要進行聲明,程序的最后則是對這兩個函數(shù)的定義。
2.l是long的意思,明白了吧,就是長類型,如long int,就是長整型。這里lf就是雙精度。
3.fabs是編譯器提供的函數(shù),求絕對值。就是求dTemp的絕對值然后與dEps進行比較。
4.這個我已經(jīng)說了,程序的最后是對所自定義的函數(shù)進行的定義。也就是對你自己定義的函數(shù)的設(shè)計。
通過你提的問題可以看出,對c的學(xué)習(xí)還是很淺。書本的基本知識還是要抓經(jīng)的,畢竟沒有基本功,想學(xué)好c語言是不可能的。
建議你先看完譚浩強的c語言教程。
加油!!
1、在python中,Python 用反斜線 (“\”) 作為續(xù)行符(換行符),這里以python3.5為例。首先運行終端或者cmd命令行(windows下),執(zhí)行python3.5的命令。
2、然后輸入如下圖所示的內(nèi)容。本身就是輸出hello world!的字符串。但是這里使用了"\"進行換行。
3、這種換行方法也可以在編輯器中進行,這里以vim為例,輸入與上圖類似的代碼,保存為t.py腳本文件。
4、在bash中執(zhí)行如下命令,同樣可以執(zhí)行。
5、如果不希望使用命令,則可以給python腳本加上權(quán)限。首先要在腳本文件中指明腳本解釋器為python。在上面的t.py腳本文件中加入下面一行內(nèi)容:#!/usr/bin/env python。
6、然后執(zhí)行如下命令給t.py添加可執(zhí)行權(quán)限,chmod 755 t.py。
執(zhí)行如下命令執(zhí)行python腳本,./t.py,同樣可以執(zhí)行。
網(wǎng)頁名稱:term函數(shù)python term例句
本文路徑:http://chinadenli.net/article20/highjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、、Google、外貿(mào)建站、做網(wǎng)站、App設(shè)計
聲明:本網(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)