我在使用执行我创建的工匠命令的 envoyer 部署我的项目时遇到问题。
该命令获取我的所有用户,执行另一个工匠命令 ( $this->call('command')
) 并通过遍历所有用户来执行它的操作。
问题出在这里:
foreach($usernames as $username) {
shell_exec('php ' . base_path('artisan') . ' command ' . $username . ' > /dev/null 2>/dev/null &');
}
此命令在后台启动脚本。它手动执行没有任何问题,并且不会以超时结束(大约需要 1s~ 执行),但在 envoyer 中,它不会在部署步骤中停止运行,并且超时失败,尽管它执行完美。
附加信息:
出于我在后台运行脚本的原因:
我启动的脚本打开了一个套接字,他将 24/7 监听该套接字,直到用户手动取消它。