1

在 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 之后仍然是它执行调度程序的进程。我可以看到日志仍在添加。

4

0 回答 0