【发布时间】:2018-09-25 08:00:53
【问题描述】:
我在使用执行我创建的工匠命令的 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 全天候监听该套接字,直到
用户手动取消。
【问题讨论】:
-
你使用的是哪个版本的 Laravel?
-
我正在使用 Laravel 5.6(最新 - 已标记)
-
你可以试试
'php artisan command ' . $username . ' -
这不起作用,因为脚本必须在后台 24/7 运行 - 脚本将打开一个套接字并运行,直到有人告诉它停止运行
-
尝试
shell_exec('nohup php '应该将其与父进程分离
标签: laravel laravel-5.6 envoyer.io