common.py 716 Bytes
import os


def is_live(pid):
    try:
        os.kill(pid, 0)
    except OSError:
        return
    return True


def read_pid_file(filename):
    try:
        f = open(filename)
        s = f.read()
        f.close()
        s = s.split()
        s = s[0]
        return int(s)
    except IOError:
        return
    except ValueError:
        return
    except IndexError:
        return


def write_pid_file(filename):
    pid = os.getpid()
    f = open(filename, 'w')
    f.write(str(pid))
    f.close()
    return pid


def make_pid_file(filename):
    pid = read_pid_file(filename)
    if pid and is_live(pid):
        print(f'PID saya {pid} masih aktif.')
        return
    return write_pid_file(filename)