egy egyszerű Launchd bemutató
tegyük fel, hogy írt egy kis szkriptet, amelyet olyan gyakran szeretne futtatni. Ha Mac-et használ, akkor a launchd
tökéletes eszköz a használatához.
ez jobb, mint a crontab
, mert többek között, ha a számítógép ki van kapcsolva, amikor a program a tervek szerint fut, launchd
futtatja a programot, amint a számítógép felébred. Eközben crontab
nem.
az első lépés egy futtatandó Szkript létrehozása. Egy egyszerű csomópontot fogok írni.js, de azt használhatsz, amit csak akarsz.
touch ~/demo/main.js
ennek a példának a kedvéért ez a szkript csak annyit fog tenni, hogy naplózza a Futtatás idejét.
console.log("Hello", Date.now())
most létre kell hoznunk egy launchd
konfigurációs plist fájlt.
touch ~/Library/LaunchAgents/com.demo.daemon.plist
a plist fájl csak az Apple egyéni XML formátuma a konfigurációkhoz. Illessze be ezt a kódot. Lehet, hogy meg kell változtatnia a /Users/chet/demo
könyvtárat, amelyet ebben a példában használ.
ez a fájl néhány dolgot meghatároz:
- a démon elindul, amikor a felhasználó bejelentkezik.
- 20 másodpercenként végrehajtja.
- néhány naplófájlt fog kiadni (nagyon hasznos a hibakereséshez).
- beállítja a környezeti útvonalat (hasznos, ha a program más parancsokat használ a
usr/local/bin
– től). - a parancs a
/Users/chet/demo
könyvtárban fog végrehajtani. - és a parancs
/usr/local/bin/node main.js
.
van egy csomó más lehetőség, amelyről itt olvashat. Gyakran használt opció a KeepAlive
opció, amely újraindítja a szkriptet, amikor véget ér vagy összeomlik. Ez akkor hasznos, ha azt szeretné, hogy a szkript mindig futjon.
most már csak be kell indítanunk. Először nyissa meg a Console.app
értéket. Lehet, hogy még soha nem használta, de ez egy natív segédprogram az ilyen dolgok hibakereséséhez. A rendszerben.log szakasz, akkor keresse meg a com.demo.daemon
, hogy ha vannak olyan rendszer hibák, amikor megpróbálja elindítani launchd
.
vissza a terminálba, futtassa a következő parancsot.
launchctl load ~/Library/LaunchAgents/com.demo.daemon.plist
ha hibát látsz a Console.app
– ban, megállíthatod a démont a unload
gombbal, és a stderr.log
fájlban kereshetsz hibákat.
launchctl unload ~/Library/LaunchAgents/com.demo.daemon.plist
cat ~/demo/stderr.log
ha minden jól ment, akkor nem kell semmit látnia a Console.app
– ban, és látnia kell a ~/demo/stdout.log
fájlba érkező naplókat 20 másodpercenként.