From f46889956bd03798c5b5c7fadc1ed8e2639aa127 Mon Sep 17 00:00:00 2001 From: Eddy de Vink Date: Sat, 13 Jun 2026 10:33:58 +0200 Subject: [PATCH] fix: wrap launchd in codesign wrapper to survive brew upgrade node --- README.md | 22 ++++++++++++++++++++-- run-dienst-bot.sh | 6 ++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100755 run-dienst-bot.sh diff --git a/README.md b/README.md index 28a7229..3c60b71 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,6 @@ De bot gebruikt een **speciale groep** (Dienst opvragen EdGPT-EBS) waarin **elk - [Node.js](https://nodejs.org/) 18+ - [wwebjs-api](https://github.com/pedroslopez/whatsapp-web.js) Docker container (poort 3000) - WhatsApp sessie "EdGpt" actief in wwebjs-api -- PM2 (optioneel, voor procesbeheer) ## Installatie @@ -87,8 +86,27 @@ Beide zijn uitgesloten van git via `.gitignore`. ### Starten +De bot draait als macOS LaunchDaemon (`/Library/LaunchDaemons/nl.eddydevink.dienst-bot.plist`) met `RunAtLoad` en `KeepAlive`. +De LaunchDaemon start via `run-dienst-bot.sh`, een wrapper die bij elke start de +code signing signature van Node.js herstelt. Dit voorkomt uitval na een `brew upgrade node`. + +Herstarten: ```bash -npm start +sudo launchctl bootout system /Library/LaunchDaemons/nl.eddydevink.dienst-bot.plist +sudo launchctl bootstrap system /Library/LaunchDaemons/nl.eddydevink.dienst-bot.plist +``` + +### Stoppen + +```bash +sudo launchctl bootout system /Library/LaunchDaemons/nl.eddydevink.dienst-bot.plist +``` + +### Logs bekijken + +```bash +tail -f /Users/eddy/.pm2/logs/dienst-bot-out.log +tail -f /Users/eddy/.pm2/logs/dienst-bot-error.log ``` Of met PM2: diff --git a/run-dienst-bot.sh b/run-dienst-bot.sh new file mode 100755 index 0000000..8158f3e --- /dev/null +++ b/run-dienst-bot.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -euo pipefail + +NODE=/opt/homebrew/bin/node +codesign -f -s - "$NODE" 2>/dev/null +exec "$NODE" /Users/eddy/src/dienst_echo_whatsappgroep/src/index.js