Validate pidfile and make it stale if needed
(self)
| 62 | pass |
| 63 | |
| 64 | def validate(self): |
| 65 | """ Validate pidfile and make it stale if needed""" |
| 66 | if not self.fname: |
| 67 | return |
| 68 | try: |
| 69 | with open(self.fname) as f: |
| 70 | try: |
| 71 | wpid = int(f.read()) |
| 72 | except ValueError: |
| 73 | return |
| 74 | |
| 75 | try: |
| 76 | os.kill(wpid, 0) |
| 77 | return wpid |
| 78 | except OSError as e: |
| 79 | if e.args[0] == errno.EPERM: |
| 80 | return wpid |
| 81 | if e.args[0] == errno.ESRCH: |
| 82 | return |
| 83 | raise |
| 84 | except OSError as e: |
| 85 | if e.args[0] == errno.ENOENT: |
| 86 | return |
| 87 | raise |