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