yksinkertainen Launchd-opetusohjelma
Oletetaan, että olet kirjoittanut pienen käsikirjoituksen, jonka haluat suorittaa aina silloin tällöin. Jos käytät Macia, niin launchd
on täydellinen työkalu käyttää.
se on parempi kuin crontab
muun muassa siksi, että jos tietokoneesi on pois päältä, kun ohjelmasi on määrä ajaa, launchd
ajaa ohjelmasi heti, kun tietokone herää. Sillä välin crontab
ei.
ensimmäiseksi pitää luoda ajettava skripti. Kirjoitan yksinkertaisen solmun.voit käyttää mitä haluat.
touch ~/demo/main.js
tämän esimerkin vuoksi tämä kirjoitus ei muuta kuin kirjaa ajankohdan, jolloin se ajettiin.
console.log("Hello", Date.now())
nyt on luotava launchd
konfiguraatioplistitiedosto.
touch ~/Library/LaunchAgents/com.demo.daemon.plist
plist-tiedosto on vain Applen mukautettu XML-muoto konfiguraatioille. Liitä tämä koodi sinne. Voit joutua muuttamaan /Users/chet/demo
hakemistoon, jota käytät tässä esimerkissä.
tämä tiedosto määrittää muutamia asioita:
- taustaprosessi käynnistyy aina, kun käyttäjä kirjautuu sisään.
- se suoritetaan 20 sekunnin välein.
- se tulostuu joihinkin lokitiedostoihin (erittäin hyödyllinen virheenkorjauksessa).
- se asettaa ympäristöpolun (hyödyllinen, jos ohjelma käyttää muita komentoja
usr/local/bin
). - komento suoritetaan
/Users/chet/demo
– hakemistossa. - ja komento on
/usr/local/bin/node main.js
.
kasan muita vaihtoehtoja voit lukea täältä. Yleisesti käytetty vaihtoehto on KeepAlive
– asetus, joka käynnistää komentosarjan uudelleen aina, kun se päättyy tai kaatuu. Tämä on hyödyllistä, jos haluat komentosarjasi olevan aina käynnissä.
nyt pitää vain saada se käyntiin. Ensin avataan Console.app
. Et ehkä ole koskaan käyttänyt sitä ennen, mutta se on natiivi apuohjelma sovellus virheenkorjaus tällaista tavaraa. Järjestelmässä.lokiosa, voit etsiä com.demo.daemon
, onko järjestelmässä virheitä, kun yrität aloittaa launchd
.
Suorita Päätteessäsi seuraava komento.
launchctl load ~/Library/LaunchAgents/com.demo.daemon.plist
jos näet joitain virheitä Console.app
: ssä, voit pysäyttää demonin unload
: llä ja etsiä virheitä stderr.log
– tiedostosta.
launchctl unload ~/Library/LaunchAgents/com.demo.daemon.plist
cat ~/demo/stderr.log
jos kaikki meni hyvin, Console.app
: ssä ei pitäisi nähdä mitään ja ~/demo/stdout.log
– tiedostoon tulee lokeja 20 sekunnin välein.