    async def atimer(self):
        """Check file state ervry interval. If any change is detected, exit this
        process with a special code, so that deamon will to restart a new process.
        """
        if not self._is_any_file_changed() and not self.triggered:
            return
        while True:
            await asyncio.sleep(self.interval)
            if self._work_free():
                for watched in self.watched:
                    if callable(watched):
                        if asyncio.iscoroutinefunction(watched):
                            await watched()
                        else:
                            watched()
                    else:
                        watched.stop()
                self.stop()
                # parent_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))  # 获得所在的目录的父级目
                # path = os.path.join(parent_path, '__main__.py')
                # if sys.platform == 'win32':
                #     args = ["python", path]
                # else:
                #     args = [path, 'start']
                logger.info('重启')
                if not is_docker():
                    subprocess.Popen(sys.argv)
                return
Check file state ervry interval. If any change is detected, exit this
process with a special code, so that deamon will to restart a new process.
biliup/common/reload.py