Initiate cron jobs on create droplet LAMP

February 5, 2019 451 views
LAMP Stack PHP Ubuntu 18.04

Hello everyone,
I’m working on a project trying to plug Woocommerce and DigitalOcean.
Digital Ocean’s API works brilliant, I’ve resolved every issue with them except one.

My droplet is based on cronjobs. It checks for another website every minute and do something based on user choices.

I’ve created a snapshot of it and, when a new user subscribe to WordPress i create a droplet using this snapshot. Right after droplet creation I’ve to pull new version from Github and schedule cron.

So I’ve used user_data on droplet create method.

#!/bin/bash

git -C /var/www/buyer pull
line="* * * * * php /var/www/html/artisan schedule:run >> /dev/null 2>&1"
crontab -l | { cat; echo "$line"; } | crontab -
crontab -l > /root/test.txt

Everything works as expected, git pull works and crontab is edited correctly.

The only problem is that cronjob doesn’t start.
The only way to start cronjob is connect through SSH to my droplet, edit the default root password and run crontab -l

Only after run crontab -l it works. Seems like crontab is in rest mode or something like that.

Hope somebody can helps me because this issue is driving me crazy.

Thanks a lot

3 Answers

I’ve resolved.
You should add SSH key to droplet in order to start cronjob automatically.

Can you add this at the end of your user_data script:

service cron restart

See if that helps.

Cheers

I’ve already tried it.
Isn’t working

Have another answer? Share your knowledge.