$schedule->exec () 执行 shell 命令的所在目录环境是什么?

在 laravel 里用定时任务执行了一些 python 脚本
目前都放在 /var/ 的子目录下
现在想把它们放到 laravel 项目中,加入代码版本控制
这样的话,Kernel 里就不能写绝对地址了(因为项目的部署目录在不同的环境下不同)
所以 Kernel 里的任务调度,执行的目录是什么?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

你是要把 python 代码重新写成 php 吗?

执行的目录是 laravel 项目的根目录

5年前 评论
kiyoma (楼主) 5年前
songxue77 (作者) 5年前
kiyoma (楼主) 5年前
kiyoma (楼主) 5年前

有个方案:

1,把 Python 脚本代码保存到数据库。

2,执行定时任务的时候获取到 Python 脚本的代码然后动态创建目录(判断是否有目录,比如:/www/wwwroot/YOUR_APP/pythonScripts/)然后执行 python xxx 命令呀~

5年前 评论

第一种方法:

$schedule->exec (" cd 你的目录 && 执行python命令 ")

第二种方法:新建一个 Command 类,在里面这么写:

use Symfony\Component\Process\Process;

$process = new Process(" cd 你的目录 && 执行python命令 ");
$process->run();
dump($process->isSuccessful());
5年前 评论
kiyoma (楼主) 5年前
JerryBool (作者) 5年前
kiyoma (楼主) 5年前
JerryBool (作者) 5年前
JerryBool (作者) 5年前