@Override
                public void run() {
                    // When thread is not destroy
                    while (mTimeoutThread == this && !this.isInterrupted()) {
                        if (mCommandExecutorMap.size() > 0) {
                            synchronized (mCommandExecutorMap) {
                                Collection<CommandExecutor> commandExecutors = mCommandExecutorMap.values();
                                for (CommandExecutor executor : commandExecutors) {
                                    // Kill Service Process
                                    if (executor.isTimeOut())
                                        android.os.Process.killProcess(android.os.Process.myPid());
                                    if (mTimeoutThread != this && this.isInterrupted())
                                        break;
                                }
                            }
                        }
                        // Sleep 10 Second
                        try {
                            Thread.sleep(10000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
CommandServiceImpl extends {@link ICommandInterface.Stub} with a aidl Interface
caprice/kit-cmd/src/main/java/net/qiujuer/genius/kit/cmd/CommandService.java