欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python守護進程(daemon)代碼實例

系統(tǒng) 1633 0
            
# -*-coding:utf-8-*-
import sys, os

'''將當前進程fork為一個守護進程

  注意:如果你的守護進程是由inetd啟動的,不要這樣做!inetd完成了
  所有需要做的事情,包括重定向標準文件描述符,需要做的事情只有
  chdir() 和 umask()了
'''
def daemonize(stdin='/dev/null',stdout= '/dev/null', stderr= 'dev/null'):
  '''Fork當前進程為守護進程,重定向標準文件描述符
    (默認情況下定向到/dev/null)
  '''
  #Perform first fork.
  try:
    pid = os.fork()
    if pid > 0:
      sys.exit(0) #first parent out
  except OSError, e:
    sys.stderr.write("fork #1 failed: (%d) %s\n" %(e.errno, e.strerror))
    sys.exit(1)

  #從母體環(huán)境脫離
  os.chdir("/")
  os.umask(0)
  os.setsid()
  #執(zhí)行第二次fork
  try:
    pid = os.fork()
    if pid > 0:
      sys.exit(0) #second parent out
  except OSError, e:
    sys.stderr.write("fork #2 failed: (%d) %s]n" %(e.errno,e.strerror))
    sys.exit(1)

  #進程已經(jīng)是守護進程了,重定向標準文件描述符
  for f in sys.stdout, sys.stderr: f.flush()
  si = file(stdin, 'r')
  so = file(stdout,'a+')
  se = file(stderr,'a+',0)
  os.dup2(si.fileno(), sys.stdin.fileno())
  os.dup2(so.fileno(), sys.stdout.fileno())
  os.dup2(se.fileno(), sys.stderr.fileno())

def _example_main():
  '''示例函數(shù):每秒打印一個數(shù)字和時間戳'''
  import time
  sys.stdout.write('Daemon started with pid %d\n' % os.getpid())
  sys.stdout.write('Daemon stdout output\n')
  sys.stderr.write('Daemon stderr output\n')

  c = 0
  while True:
    sys.stdout.write('%d: %s\n' %(c, time.ctime()))
    sys.stdout.flush()
    c = c+1
    time.sleep(1)

if __name__ == "__main__":
  daemonize()
  _example_main()
'''
第一個fork是為了讓shell返回,同時讓你完成setsid(從你的控制終端移除,這樣就不會意外地收到信號)。setsid使得這個進程成為“會話領導(session leader)”,即如果這個進程打開任何終端,該終端就會成為此進程的控制終端。我們不需要一個守護進程有任何控制終端,所以我們又fork一次。在第二次fork之后,此進程不再是一個“會話領導”,這樣它就能打開任何文件(包括終端)且不會意外地再次獲得一個控制終端

另外說明:
umask()函數(shù)為進程設置文件模式創(chuàng)建屏蔽字,并返回以前的值
在shell命令行輸入:umask 就可知當前文件模式創(chuàng)建屏蔽字
常見的幾種umask值是002,022和027,002阻止其他用戶寫你的文件,022阻止同組成員和其他用戶寫你的文件,027阻止同組成員寫你的文件以及其他用戶讀寫或執(zhí)行你的文件
rwx-rwx-rwx 代表是777 所有的人都具有權限讀寫與執(zhí)行

chmod()改變文件的權限位
int dup(int filedes) 返回新文件描述符一定是當前文件描述符中的最小數(shù)值
int dup2(int filedes, int filedes2);這兩個函數(shù)返回的新文件描述符與參數(shù)filedes共享同一個文件表項。
'''
          

更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产高清精品在线 | 免费色网址 | 68久久久久欧美精品观看 | 剑来在线观看 | 国产高清片 | 狠狠狠色丁香婷婷综合激情 | 日日摸日日添夜夜爽97 | 亚洲一区二区三区免费观看 | 成人免费一区二区三区视频网站 | 一级免费大片 | 国产精品91久久久 | 一区二区三区视频在线 | 日韩电影中文字幕 | 一区二区精品 | 久久久一区二区三区视频 | 一区二区日韩精品 | 黄色免费观看 | 日日摸日日添夜夜爽97 | 天天操夜夜艹 | 国产成人综合95精品视频免费 | 最新久久免费视频 | 大香一本蕉伊线亚洲网 | 欧美日韩免费在线观看 | 亚欧精品一区二区三区四区 | 人人干人人干人人干 | 亚洲欧美日韩高清 | 亚洲精品第一综合99久久 | 欧美综合区 | 国产美女啪啪 | 午夜视频在线 | 一级欧美日韩 | 亚洲嗯啊 | 欧美午夜激情影院 | 国产精品久久久久久久久久久久 | 精品热99 | jizz亚洲日本 | 特级毛片8级毛片免费观看 亚洲精品不卡 | 在线看免费观看日本 | 欧美精品videosex极品 | 午夜小网站 | 一级性生活免费视频 |