cliez/slot.py
def check_exclusive_mode(self):
        """
        检查是否是独占模式

        参数顺序必须一致,也就是说如果参数顺序不一致,则判定为是两个不同的进程
        这么设计是考虑到:

        - 一般而言,排他模式的服务启动都是crontab等脚本来完成的,不存在顺序变更的可能
        - 这在调试的时候可以帮助我们不需要结束原有进程就可以继续调试

        :return:
        """

        if self.options.exclusive_mode:
            import psutil
            current_pid = os.getpid()
            current = psutil.Process(current_pid).cmdline()

            for pid in psutil.pids():
                p = psutil.Process(pid)
                try:
                    if current_pid != pid and current == p.cmdline():
                        self.error_message(
                            "process exist. pid:{}".format(p.pid))
                        sys.exit(-1)
                        pass

                except psutil.ZombieProcess:
                    # 僵尸进程,无视
                    pass
                except psutil.AccessDenied:
                    # 不具备用户权限
                    pass
                pass
            pass

        pass
def check_exclusive_mode(self):
        """
        检查是否是独占模式

        参数顺序必须一致,也就是说如果参数顺序不一致,则判定为是两个不同的进程
        这么设计是考虑到:

        - 一般而言,排他模式的服务启动都是crontab等脚本来完成的,不存在顺序变更的可能
        - 这在调试的时候可以帮助我们不需要结束原有进程就可以继续调试

        :return:
        """

        if self.options.exclusive_mode:
            import psutil
            current_pid = os.getpid()
            current = psutil.Process(current_pid).cmdline()

            for pid in psutil.pids():
                p = psutil.Process(pid)
                try:
                    if current_pid != pid and current == p.cmdline():
                        self.error_message(
                            "process exist. pid:{}".format(p.pid))
                        sys.exit(-1)
                        pass

                except psutil.ZombieProcess:
                    # 僵尸进程,无视
                    pass
                except psutil.AccessDenied:
                    # 不具备用户权限
                    pass
                pass
            pass

        pass
检查是否是独占模式

        参数顺序必须一致,也就是说如果参数顺序不一致,则判定为是两个不同的进程
        这么设计是考虑到:

        - 一般而言,排他模式的服务启动都是crontab等脚本来完成的,不存在顺序变更的可能
        - 这在调试的时候可以帮助我们不需要结束原有进程就可以继续调试

        :return: