我在thinkphp 5中整合了Workerman后,使用Crontab作为定时任务,根据官方提供的文档,已经整合成功,具体环境及软件版本如下:
整合完成后,使用 php crm_server.php start -d可以正常启动守护进程,且以下代码执行成功:

但是此时想要停止Workerman中的Crontab定时任务,使用php crm_server.php stop却无法停止,报错信息如下:

此时在以上代码的Kernel控制器中新增stop()方法:

然后再次执行php crm_server.php stop,报错信息已经消失,但是任务依然没有终止:

日志文件中依然会有输出:

按照添加stop()的方法,添加reload()、restart()、status()方法然后调用Workerman中的对应方法,依然无效果,请问各位大佬,此时我应该如何实现php crm_server.php + stop、reload、restart、status的功能?
看起来是tp截获了命令,导致workemran无法收到命令。
不知道你为什么把tp和workemran整合在一起,如果你想在workerman中用tp的数据库类,没必要把tp和workerman在代码层面整合在一起,只需要在纯净的workerman项目中利用
composer require topthink/think-orm将tp的数据库组件加进来即可。tp-orm手册 https://www.kancloud.cn/manual/think-orm/1257998现在不确定是不是tp截获了命令,我按照您在另外一个帖子里提供的方法,在代码中执行
posix_kill(posix_getppid(), SIGINT);命令依然无法停止。我先试一下您说的workerman整合tp-orm的方法,看看修改成本大不大。非常感谢。