Подскажите, не могу понять почему планировщик Laravel не хочет запускаться через крон из под user, но отлично запускается из под root.
Система Ubuntu, Laravel 5.4, PHP 7.
Kernel.php<?php namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel {
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
'App\Console\Commands\CommandMy'
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('command:my')->withoutOverlapping()->everyTenMinutes();
}
}
CommandMy.php<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Http\Controllers\MyController;
class CommandMy extends Command
{
protected $signature = 'command:my';
protected $description = 'My command';
protected $contr;
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(MyController $my)
{
parent::__construct();
$this->func=$my;
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$this->info($this->func);
}
}
cronetab -l -u user:* * * * * php /var/www/artisan schedule:run 1>> /dev/null 2>&1
или
cronetab -l -u root:* * * * * php /var/www/artisan schedule:run 1>> /dev/null 2>&1
При этом:
- команда
artisan command:my отрабатывает нормально
- а
artisan schedule:run пишет:
No scheduled commands are ready to run
Как такое может быть? Есть мысли?