updatenotification: avoid using pm2 when running in docker container (#3484)

related to #3480 

Change module updatenotification so that it can work without `pm2` in a
docker container.

It now tests if file `/.dockerenv` exists and if so `require("pm2")` is
never called.
This commit is contained in:
Karsten Hassel
2024-06-28 22:33:21 +02:00
committed by GitHub
parent c89c3edf97
commit 92ac3895a7
2 changed files with 12 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
const Exec = require("node:child_process").exec;
const Spawn = require("node:child_process").spawn;
const pm2 = require("pm2");
const fs = require("node:fs");
const Log = require("logger");
@@ -139,6 +139,7 @@ class Updater {
// restart MagicMiror with "pm2"
pm2Restart () {
Log.info("updatenotification: PM2 will restarting MagicMirror...");
const pm2 = require("pm2");
pm2.restart(this.PM2, (err, proc) => {
if (err) {
Log.error("updatenotification:[PM2] restart Error", err);
@@ -160,6 +161,14 @@ class Updater {
check_PM2_Process () {
Log.info("updatenotification: Checking PM2 using...");
return new Promise((resolve) => {
if (fs.existsSync("/.dockerenv")) {
Log.info("updatenotification: Running in docker container, not using PM2 ...");
this.usePM2 = false;
resolve(false);
return;
}
const pm2 = require("pm2");
pm2.connect((err) => {
if (err) {
Log.error("updatenotification: [PM2]", err);