Advertisement
Guest User

Untitled

a guest
Apr 1st, 2011
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.62 KB | None | 0 0
  1. Скрипт номер раз.
  2.  
  3. #!/usr/bin/env python
  4. #-*- coding: utf-8 -*-  
  5. import sys, os, time, atexit
  6. from signal import SIGTERM, SIGHUP
  7. import os, socket, time, signal, select
  8.  
  9. class Daemon(object):
  10.     def __init__(self, pidfile):
  11.             self.pidfile = pidfile
  12.             self.status = 'test'
  13.             signal.signal(signal.SIGHUP, self.get_status)
  14.     def get_status(self, signum, frame):
  15.             f = open('/tmp/daemonstatus', 'wr+')
  16.             f.write(str(self.status))
  17.             f.close()
  18.     def Run(self):
  19.             while True:
  20.                     self.status = '1'
  21.                     print self.status
  22.                     time.sleep(1)
  23.                     self.status = '2'
  24.                     print self.status
  25.                     time.sleep(1)
  26.                     self.status = '3'
  27.                     print self.status
  28.                     time.sleep(1)
  29.  
  30. pid = os.getpid()
  31. daemon = Daemon(pid)
  32. f = open('/tmp/dem_pid', 'wr+')
  33. f.write(str(pid))
  34. f.close()
  35. daemon.Run()
  36.  
  37.  
  38. Сохраняем в dem.py, запускаем. Будет выводит 1,2 или 3 с интервалом в 1 секунду. В другой консоли делаем kill -HUP `cat /tmp/dem_pid` && cat /tmp/daemonstatus && echo
  39. Выведет 1,2 или 3. Всё хорошо.
  40.  
  41. Теперь в другой консоли делаем так: while true; do kill -HUP `cat /tmp/dem_pid` && cat /tmp/daemonstatus && echo; done
  42.  
  43. В результате в консоли, где запущен скрипт будут мелькать циферки. В консоли, где запущен килл аналогично. Я озадачен.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement