zoukankan      html  css  js  c++  java
  • 系统信号(signal)与其他(定时器,退出清理等)

    信号signal,可以用作进程线程通信,也可以用作接收中断后退出,退出时,清理资源,记录日志。python相关包为signa。

    linux信号表
    root@server:~# 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 

    1.定时器

    可以通过alarm()实现定时器功能,间隔n秒进程自己向自己发送信号,并被处理函数处理。

    实例:

    import signal
    # Define signal handler function
    def myHandler(signum, frame):
      print("Now, it's the time")
      exit()
     
    # register signal.SIGALRM's handler 
    signal.signal(signal.SIGALRM, myHandler)
    signal.alarm(5)
    while True:
      print('go...')


    注:这样就不用自己在while里用计数器去判断了,借助os,省事啊!

    2. 程序退出

    经常手动启动程序,然后ctrl+c退出,或者其他监护程序启动杀死进程,若是能在推出前干干净净的清理下资源就好了,比如关闭日志,数据库连接,socket等。

     signal.signal(signal.SIGINT, quit) #KeyboardInterrupt
     signal.signal(signal.SIGTERM, quit) #kill

    以上,只需要定义quit函数就好了。

     redis的例子

    3. linux

    语言的很多功能来自os,故,多查看linux库手册,重要切记!

    http://www.jb51.net/article/74844.htm

  • 相关阅读:
    Diverse Garland
    Basketball Exercise
    Quasi Binary
    Vacations
    Given Length and Sum of Digits...
    三大集合框架之map
    三大集合框架之Set
    JDBC操作数据库的基本步骤:
    java面试之----堆(heap)、栈(stack)和方法区(method)
    JSP九大隐式对象
  • 原文地址:https://www.cnblogs.com/thingk/p/8386515.html
Copyright © 2011-2022 走看看