Cronを使用して、毎分ごとにtwitterで未投稿の予約ツイートをツイートするようにしています。
crontab -eで下記のように設定しています。
* * * * * cd /Applications/MAMP/htdocs/twitter && php artisan schedule:run >> /dev/null 2>&1
(ここの記述に倣いました。https://readouble.com/laravel/5.8/ja/scheduling.html
ただ、書いた内容がよくわからず、何を読めばいいでしょうか。。)
「php artisan schedule:run」を行うと想定通りの動きとなります。
考えられる原因パターンと解決策はございますでしょうか。
=============================================
以下、補足情報です。引き続き確認していきますが、今の時点で何かわかること等あれば是非ご教示ください。
・バージョン:Laravel Framework 5.8.38、PHP 7.4.29
・$ service crond statusと$ systemctl status crond.service結果
$ service crond status -bash: service: command not found $ systemctl status crond.service -bash: systemctl: command not found
・$ ps aux | grep crond 結果
ps aux | grep crond yyyqqq 76186 0.0 0.0 4295688 848 s004 S+ 2:47AM 0:00.01 grep crond
・(追記)以下のような単純なプログラムで試したところ、cronは動いていることがわかりました。
https://qiita.com/suzu12/items/e12b3a8c6cbc3ea81720
・実行するファイルの権限
-rwxrwxrwx 1 yyyqqq admin 2178 6 27 01:47 AutoTweet.php
・$ cat /var/log/cron 結果
$ cat /var/log/cron cat: /var/log/cron: No such file or directory
・/etc/init.d/crond startの結果
$ /etc/init.d/crond start -bash: /etc/init.d/crond: No such file or directory
・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\AutoTweet::class ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { // auto:tweetコマンドを毎分実行する $schedule->command('command:auto_tweet')->everyMinute(); } /** * Register the commands for the application. * * @return void */ protected function commands() { $this->load(__DIR__.'/Commands'); require base_path('routes/console.php'); } }
回答1件
あなたの回答
tips
プレビュー