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.