All cron jobs were scheduled but not executed.
I found the solution in the forums
If it is false, cron.php will start two cron.sh processes in the background
cron.sh /path/to/cron.php -mdefault
cron.sh /path/to/cron.php -malways
cron.sh in turn, runs cron.php (with the same arguments) if it doesn't find a running cron.php process. At least in theory, apparently checking for a running process does not work if the process has been spawned from cron.php as described above.
Now, if $isShellDisabled is true, this is not possible and cron.php will run in both modes ("default" and "always") one after another.
SolutionYou can leave out the first step of all this and set up your crontab directly with two jobs:
cron.sh cron.php -mdefault
cron.sh cron.php -malways
(with full path to cron.sh and cron.php) This way you'll have a working check if there is already a running process, but you cannot specify the path to the PHP binary to be used.
If that's important, use this instead:
/path/to/php cron.php -mdefault
/path/to/php cron.php -malways
I found the solution in the forums
First Solution::::
Modifying core files is not a recommended practice at all. Luckily this solution is without editing we can solve , but first let me explain what this line is doing:
The three lines before try to figure out if PHP is allowed to execute shell commands and set
The three lines before try to figure out if PHP is allowed to execute shell commands and set
$isShellDisabled = true if not.
If it is false, cron.php will start two cron.sh processes in the background
cron.sh /path/to/cron.php -mdefault
cron.sh /path/to/cron.php -malways
cron.sh in turn, runs cron.php (with the same arguments) if it doesn't find a running cron.php process. At least in theory, apparently checking for a running process does not work if the process has been spawned from cron.php as described above.
Now, if $isShellDisabled is true, this is not possible and cron.php will run in both modes ("default" and "always") one after another.
SolutionYou can leave out the first step of all this and set up your crontab directly with two jobs:
cron.sh cron.php -mdefault
cron.sh cron.php -malways
(with full path to cron.sh and cron.php) This way you'll have a working check if there is already a running process, but you cannot specify the path to the PHP binary to be used.
If that's important, use this instead:
/path/to/php cron.php -mdefault
/path/to/php cron.php -malways
Second Solution::::
Previously I tried to install Magento 1.7.0.2 in my hosting server, and the cron is running fine. So I assumed my hosting cannot run Magento 1.8.0.0 cron so I was planned to downgrade my Magento site to 1.7.0.2. But before I downgrade my site, I found the solution on the link above.
- Edit file cron.php
- After
$isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true;
around #47 add this line of code$isShellDisabled = true;
And now My Magento 1.8.0.0 cron run perfectly.
Comments
Post a Comment