在app / console / kernel.php文件中我有:
Log::notice('schedule start');
$available_input = array('info1','info12','info13','info14','info15','info16','info17','info18','info19','info11','info1','info2','info3','info4','info5','info6','info7','info8','info9','info20');
foreach ($available_input as $port_key => $input) {
$schedule->exec("sh /home/user1/subfolder/script.sh $input")->withoutOverlapping()->appendOutputTo(storage_path('logs/script_info.log'));
}
Log::notice('schedule end');
在script.sh文件中
#!/bin/sh
echo `date "+%Y-%m-%d %r: Script Starts for $1"`
if [ $# -eq 1 ]
then
echo `date "+%Y-%m-%d %r: Script Working for $1"`
sleep 2m
else
echo "invalid argument"
fi
echo `date "+%Y-%m-%d %r: Script Completed"`
然后我使用以下代码从crontab启动脚本
* * * * * php /var/www/localapp.com/api/artisan schedule:run >> /home/user1/subfolder/scheduler_info.log 2>&1
工作正常。但它的行为不端甚至没有来自cron的触发器。也就是说,在停止cron后仍然执行调度程序。我可以看到日志仍在添加。