Auf einem Mac ein Node-Script per Deamon aufrufen

Um ein Node – Script als ein Deamon auszuführen, ist nur ein Startscript nötig.

Als Beispiel wird ein Node Script zum Starten einer „Homematic“-Komponente „ccu.io.js“ auf einem Mac-Server dargestellt.

Voraussetzungen:

  • Hier wird davon ausgegangen das Node Funktionsfähig Installiert ist.
  • In diesem Fall ist die CCU.IO-Komponente, im Verzeichnis /opt, ebenfalls funktionsfähig installiert.
    • Sollte hier ein User die Komponente CCU.IO starten wollen, dann bitte auch entsprechende Lese und Schreibrechte in dem Verzeichnis setzen.
  • Sollte ein Script mit Root-Rechten angesprochen werden, ist ebenfalls ein Rootzugriff oder ein Eintrag in der Sudo-Liste erforderlich
    • Ein Root-zugriff ist bei Komponenten erforderlich, welche in die Systemeigenen Log-Verzeichnisse schreiben möchten.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>de.homematic.ccuio</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>/opt/ccu.io/ccu.io-server.js</string>
        <string>start</string>
    </array>
    <key>WorkingDirectory</key>
	<string>/opt/ccu.io</string>
    <key>StandardOutPath</key>
        <string>/opt/log/ccu.io.log</string>
    <key>StandardErrorPath</key>
       <string>/opt/log/ccu.io.log</string>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Die Startscriptvorlage wurde in diesen Beispieln unter /Users/Stephan/Desktop mit dem Name ccuio.plist gespeichert.

 

Prolog

Zuerst muss Überlegt werden wann das Script gestartet werden soll und mit welchen Rechten.

Sollte es ausreichen, das dieses Script gestartet wird wenn sich ein Benutzt am PC anmeldet, dann kann im nachfolgenden bei dem Eintrag “User-Startscript” weiter gearbeitet werden.

Sollte das Script aber mit Root-Rechten oder bei einem Start des PC ausgeführt werden dann ist beim Eintrag “Root-Startscript” weiter zu arbeiten.

 

User-Startscript
Bei jeder Anmeldung des Users wird das Startskript automatisch ausgeführt.

Kopiere eine existierende plist aus dem User-Verzeichnis in das LaunchAgents Verzeichnis des Users. (Beachte auch am Ende des Beitrags die Verzeichniserklärung).

cp /Users/Stephan/Desktop/ccuio.plist ~/Library/LaunchAgents/ccuio.plist

Laden des Scripts

launchctl load ~/Library/LaunchAgents/ccuio.plist

Sarte das Script

launchctl start de.homematic.ccuio

 

Root-Startscript

Für nachfolgende Aktionen in einem Terminal ist ein Sudo (mit Adminpasswort) erforderlich.

Kopiere eine existierende plist aus dem User-Verzeichnis in das LaunchAgents Verzeichnis. (Beachte auch am Ende des Beitrags die Verzeichniserklärung)

sudo cp /Users/Stephan/Desktop/ccuio.plist /Library/LaunchAgents/ccuio.plist

Ändere den Besitzer auf root

sudo chown root /Library/LaunchAgents/ccuio.plist

Passe die Dateirechte an.

sudo chmod 644 /Library/LaunchAgents/ccuio.plist

Lade das Script

sudo launchctl load /Library/LaunchAgents/ccuio.plist

Sarte das Script

sudo launchctl start de.homematic.ccuio

 

Zusätze

Stopt das Script (User-Script)

launchctl stop de.homematic.ccuio

Stopt das Script (Root-Script)

sudo launchctl stop de.homematic.ccuio

Entläd das Script (User-Script)

launchctl unload ~/Library/LaunchAgents/ccuio.plist

Entläd das Script (Root-Script)

sudo launchctl unload /Library/LaunchAgents/ccuio.plist

Anzeigen einer Liste, was alles unter “homematic” im launchd eingetragen ist.

sudo launchctl list |grep homematic

Testen was alles unter einem CCU.IO läuft

ps -ef|grep ccu.io

 

Verzeichniserklärung

~/Library/LaunchAgents ……….→ Userskript, wird ausgeführt, wenn sich $USER anmeldet. Owner = $USER
/Library/LaunchAgents ………. → Wird bei jedem User bei der Anmeldung ausgeführt. Owner = root
/Library/LaunchDaemons ……… → Wird beim Systemstart ausgeführt. Owner = root
/System/Library/LaunchAgents … → Sollte nicht verwendet werden!
/System/Library/LaunchDaemons .. → Sollte nicht verwendet werden!

Dieser Beitrag wurde unter Heimsteuerung, PC-Hilfe abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.