Read the statement by Michael Teeuw here.
Starting MM Crontab
-
@sdetweil Yep, only MM update. Let me try
start: node --run start:x11
and see what happens. -
KristjanESPERANTO Module Developerlast edited by KristjanESPERANTO Jul 4, 2025, 6:02 AM Jul 3, 2025, 10:05 PM
@mumblebaj Just an idea: Maybe the node version used in Cron could be to old. When you run a script manually in your terminal, your full user environment (including things like .bashrc or .zshrc) is loaded. Cron runs in a much more minimal environment — it often doesn’t load your shell config files, so tools like nvm (Node Version Manager) might not be available.
How to fix it:
- Use the full path to Node: Find it with
which node
and use that path in your cron job. - Set the environment manually in cron: You can define your PATH at the top of the cron file.
- Source nvm in your script: If you use nvm, add source
~/.nvm/nvm.sh
andnvm use <version>
before calling node.
- Use the full path to Node: Find it with
-
@KristjanESPERANTO Thanks Kristjan. But I don’t see how updating MM could cause this. I only updated MM with Sam’s upgrade script. Don’t see how that has changed anything with regards to how Crontab works. Maybe it is related to changing the launch to
node --run start
. I can see the command being fired in the log but it does not launch MM like it did before the upgrade.Anyhow, I manually launch it for now till I find a suitable solution.
-
@mumblebaj did you use npm start before?
it ‘may’ be the path as @KristjanESPERANTO mentioned
so from the user command line do
which node
and use that result in the cron command
-
@sdetweil Hi Sam. I have always used npm. I have just been reading through the PR-3764 and i agree with your arguments in that it could have breaking affects for how we do things as both users and devs. Case in point.
However, the forum is about new things and moving forward, so I agree with @KristjanESPERANTO on that point of view as well.
I have now resolved my script issue and am now able to launch from the cron again. 😉
For somebody who may have the same issue, this is how I solved for it.
export DISPLAY=:0 cd ~/MagicMirror npm run start:x11
The above has solved it for me now.
-
@sdetweil Stupid question, how do I mark this as resolved?
-
@mumblebaj you didn’t open it as an issue, so it can’t be resolved
Normally 3 dot menu right of selected post
-
@mumblebaj what do you think fixed your problem?
DISPLAY is set in package.json if not already
folder of course -
@sdetweil A few things:
The main issue being:
MagicMirror is now using a flat npm config, and the start scripts are handled differently,node --run start:x11
is not a valid Node.js command — unless you are using a custom wrapper or an internal script, this will fail silently or do nothing.As Crontab runs in a minimal environment, so any graphical (X11) application must explicitly export DISPLAY. Previously I had the command as
DISPLAY=:0 npm start
. Now, I had toexport DISPLAY=:0
first and then start MM.