Read the statement by Michael Teeuw here.
Cronjob
-
@MadScientist said in Cronjob:
Are you using the GoogleMapsTraffic module? In that case the pm2 reload mm will do. Or a simple Ctrl+R on the mirror. The cronjob should then look something like 55 19 * * * pm2 reload mm (mine is 0 6 * * * pm2 reload mm and it works flawlessly).
Exactly, I use the modules GoogleMapsTraffi on these two monitors and these two monitors will not wake up after a while, if I turned off the monitors for several hours.
Then tonight I will try
pm2 reload mm
. Unfortunately, the commandpm2 restart mm
did not work. Then I’m curious. -
Depennding on the other modules you’re using it might be good to reload MM more than once a day. In my case once is enough. Without reloading the screen turns black after more than one day. Depending on your setup it could be better to reload it twice or 4 times a day. In the end the reload is very quick and you won’t notice anything.
-
Perfect, did not know that I can reload the MagicMirror. Have always made a restart in the past. I’ll give feedback this evening on whether the cronjob works with the
pm2 reload mm
command -
@MadScientist : Is there a way to automatically reload MM once or twice a day? I have similar problems with the Netatmo module, which doesn’t pick up new data in the morning (as my WLAN is turned off during the night). A reload fixes this, but I would rather have this automatically (e.g. at 06:00 in the morning for example).
Maybe a simple script would help, but I don’t know where to put it.
-
@MadScientist said in Cronjob:
55 19 * * * pm2 reload mm
The command works in the console
pm2 reload mm
If I add it in the cron job, it will not do any reload.
Here is the excerpt from the crontab
# Edit this file to introduce tasks to be run by cron. # # Each task to run has to be defined through a single line # indicating with different fields when the task will be run # and what command to run for the task # # To define the time you can provide concrete values for # minute (m), hour (h), day of month (dom), month (mon), # and day of week (dow) or use '*' in these fields (for 'any').# # Notice that tasks will be started based on the cron's system # daemon's notion of time and timezones. # # Output of the crontab jobs (including errors) is sent through # email to the user the crontab file belongs to (unless redirected). # # For example, you can run a backup of all your user accounts # at 5 a.m every week with: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command # #MONTAG BIS SONNTAG UM 17:02 MAGICMIRROR RELOAD 02 17 * * * pm2 reload mm #
-
This is my crontab:
# daemon's notion of time and timezones. # # Output of the crontab jobs (including errors) is sent through # email to the user the crontab file belongs to (unless redirected). # # For example, you can run a backup of all your user accounts # at 5 a.m every week with: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command 0 6 * * * pm2 reload mm
Are you running
crontab -e
with sudo? Because you have to run it as the user that runs MM (= most likely without sudo).Edit: @Zwirbel: For me it works using a cronjob. See what I wrote above and if you have questions regarding crontab, just ask again.
-
Juhuiiiii, finally it worked. Many Thanks
I have always used the command
sudo crontab -e
and with this it did not work.It works fine with the
crontab -e
command and then0 6 * * * pm2 reload mm
Once again, thank you very much for your help!!!
-
Glad it worked! :smiling_face_with_open_mouth:
-
@CyruS1337 said in Cronjob:
I have always used the command sudo crontab -e and with this it did not work.
Just to clarify.
Normally you are user pi:
$ who am I
So
crontab -e
will work for the pi user.
Usingsudo crontab -e
will change the crontab for the root user.Now how can you tell what is what ?
For the user pi:
$ sudo crontab -l -u pi
which is the same as
$ crontab -l
For the user root:
$ sudo crontab -l -u root
Furthermore, when you have activated the root crontab, then the command will run as root, in the root (/) directory.
In this casepm2 reload
command will search for themm.sh
script under/
and will not find it.
Whereas when activated the pi crontab, themm.sh
script will be searched in the/home/pi
directory, where it should be, and it will work.Use
pm2 show mm
to show the details on mm under pm2.
Then you will understand it better.Cron messages normally are directed to
/var/log/cron.log
, but on my system it is not directed:$ grep cron /etc/rsyslog.conf #cron.* /var/log/cron.log
To see the cron messages, when not in cron.log:
$ tail -F /var/log/syslog | grep CRON
[ On my system I see CRON messages for root, although I do not have root crontab entries. There is a crond running that runs alongside
$ systemctl status cron
.]Have fun :-)
-
@evroom Many thanks for the detailed information.
As you can see, I always executed the command as sudo
sudo crontab -e
So I always executed the commands in the root directory. Which thus never led to success.
Thanks again for the help and the detailed listing.
Greeting