Launchdin käyttäminen komentosarjojen ajoittamiseen Macissa

Tehtävien automatisointi komentosarjoja ajoittamalla on tehokas ominaisuus, johon monet järjestelmänvalvojat luottavat päivittäin. Tavalliset Mac-käyttäjät voivat myös hyödyntää tätä tehoa käyttämällä launchd-työkalua, joka on Applen ensisijainen työkalu tehtävien automatisointiin ja hallintaan macOS:ssä. Macissa käynnistetty yksinkertaisten tehtävien, kuten Wi-Fi:n sammuttaminen tietyksi tunniksi, ajoittamisesta monimutkaisten järjestelmän varmuuskopiointien suorittamiseen voi auttaa sinua automatisoimaan työnkulkusi, säästämään aikaa ja varmistamaan, että järjestelmäsi toimii juuri niin kuin haluat.

Mikä Launchd on?

Aivan kuten orkesteri vaatii kapellimestarin ohjaamaan ja harmonisoimaan erilaisia ​​instrumentteja, macOS Ventura lukuisine prosesseineen ja palveluineen luottaa lanseeraukseen varmistaakseen, että kaikki soi täydellisesti. Ensimmäisenä prosessina, jonka macOS-ydin käynnistää tietokoneen käynnistyksen yhteydessä, launchd on keskeisessä asemassa ja ohjaa jokaisen myöhemmän prosessin, palvelun ja sovelluksen, aivan kuten kapellimestari, joka ilmoittaa sinfonian alkamisesta ensimmäisellä viestikapulan nostolla.

Sen lisäksi, että sillä on rooli järjestelmän organisoinnissa, launchd:ta voidaan käyttää komentosarjojen ajoittamiseen, sarjaan komentoja, jotka on kirjoitettu suorittamaan tietty tehtävä. Tämä tehdään launchctl-komennolla, joka toimii käyttöliittymänä, jonka avulla käyttäjät voivat kommunikoida ja ohjata käynnistettyä johdinta.

Hyvä tietää: torrentien lataaminen? Paranna tehokkuutta lataamalla torrentteja Macin Terminalilla.

Daemonit ja agentit

Lausuntoa kutsutaan joskus demoniksi, tietokoneohjelmaksi, joka toimii taustaprosessina ja jota ei yleensä ole suunniteltu suoraan käyttäjän ohjattavaksi. Mitä demoniin tulee, launchd on erityinen, koska se on kaikkien muiden macOS-daemonien päämies, ja se voi päättää, milloin ne alkavat ja pysähtyvät. Nämä palvelevat demonit toimivat pääkäyttäjän alaisuudessa, joten ne voivat tehdä melkein mitä tahansa.

Kuitenkin käyttäjänä, joka on kiinnostunut tehtävien ajoituksesta, komentosarjojen suorittaminen pääkäyttäjän alla ei ole aina toivottavaa tai tarpeellista. Tässä agentit tulevat peliin. Agentit toimivat kirjautuneen käyttäjän puolesta ja tarjoavat rajoitetumman ympäristön ja varmistavat, että komentosarjat tai tehtävät suoritetaan kyseisen käyttäjän lupien ja asetusten mukaisesti. Jos esimerkiksi haluat suorittaa komentosarjan, joka muuttaa asetuksia tai käyttää tilisi tiedostoja, käytä agenttia.

Kärki: törmäätkö yhteensopivuusongelmiin joidenkin pitkäaikaisten Mac-suosikkisovellustesi kanssa? Tutustu 32-bittisen Linuxin asentamiseen vanhaan Maciin.

Skriptien kirjoittaminen

Jotta voit ajaa agentteja tai demoneita launchdin kautta, sinun on kirjoitettava komentosarjoja. Yleisin skriptikieli on bash. Jos haluat oppia lisää bash-komentosarjasta, voit tutustua bash-skriptien aloittelijaoppaaseemme.

Käynnistämäsi skriptit voivat asua kahdessa eri paikassa riippuen siitä, onko ne tarkoitettu ajettavaksi agentteina vai demoneina:

  • Sisäänkirjautuneen käyttäjän puolesta toimiviksi agenteiksi tarkoitetut komentosarjat tulee tallentaa kansioon ~/Library/LaunchAgents.
  • Sitä vastoin komentosarjat, jotka on tarkoitettu toimimaan demoneina, käyttöjärjestelmän laajuisina riippumatta sisäänkirjautuneesta käyttäjästä, kuuluvat "/Library/LaunchDaemons" -kansioon.

Muista, että agenteilla ei ole pääkäyttäjän oikeuksia, joten he eivät voi suorittaa tehtäviä, jotka vaativat syvän järjestelmän pääsyn. Daemonit sen sijaan toimivat pääkäyttäjän oikeuksin ja voivat käsitellä tehtäviä, jotka vaikuttavat koko järjestelmään.

Hyvä tietää: voit saada Macin hallinnan syvemmälle ottamalla käyttöön juurikäyttäjän, jolloin pääset käyttämään sen koko tiedostojärjestelmää.

Työ kuvaukset

Lausunto-ohjelman komentosarjat laukaisevat työnmääritykset, jotka ovat tiettyihin hakemistoihin tallennettuja .plist-tiedostoja. Nämä XML-tiedostot antavat työlle nimen, määrittävät käynnistettävän skriptin ja osoittavat, milloin komentosarja tulee suorittaa. Kun olet kirjoittanut skriptin, kirjoitat ja lataat työn määritelmän, joka käynnistää skriptin oikeaan aikaan. Työn määritelmä näyttää tältä:

    Label local.restart Ohjelma /Käyttäjät/käyttäjä /Scripts/restart.sh RunAtLoad   

Muokkaa tarvittaessa ja laita se sitten tekstitiedostoon .plist-tunnisteella ennen kuin pudotat sen oikeaan hakemistoon (katso yllä).

Työn kuvauksessa on muutamia keskeisiä osia:

  • Tunniste: työn nimi launchdissa. Jokaisen työn tulee olla yksilöllinen. Nämä on kirjoitettu käänteisellä verkkotunnuksen merkinnällä, ja "paikallinen" on loistava toimialue yksityisille agenteille.
  • Ohjelmoida: tämän työnkuvauksen käynnistämän skriptin koko polku.
  • RunAtLoad: kertoo, milloin skripti tulee suorittaa. Tässä on muutama eri vaihtoehto:
    • RunAtLoad: Suorita heti, kun työn määritelmä on ladattu. Käynnistyy vain kerran kuormaa kohti.
    • Aloitusintervalli: aloita työ n sekunnin välein.
    • StartCalendarInterval: suorita työ tiettyyn aikaan ja päivämäärään.

Kärki: Tarvitsetko lisää tilaa niille komentosarjatiedostoille? Opi tyhjentämään Macin välimuisti vapauttaaksesi nopeasti tilaa.

Ladataan töitä launchctl:iin

Kun olet luonut komentosarjat ja tallentanut agenttisi oikeaan paikkaan, sinun on ladattava se launchctl:iin. Tämä tapahtuu automaattisesti sisäänkirjautumisen yhteydessä jatkossa.

Jos haluat nähdä, mitä laucnhctl:ssä tällä hetkellä on käynnissä, voit käyttää terminaalin launchctl-listaa. Tämä jättiläinen luettelo voidaan yhdistää komentosarjaasi varten merkitsemällä se jollakin seuraavista:

launchctl lista |  grep local.restart

Lataa komentosarja avaamalla Terminal ja käyttämällä seuraavaa komentoa:

launchctl load ~/Library/LaunchAgents/local.restart.plist

Poista komentosarja launchctl-jonosta käyttämällä unload-komentoa:

launchctl unload ~/Library/LaunchAgents/local.restart.plist

Työn lataaminen asettaa sen aloitusjonoon, ja työ suoritetaan sen käynnistysehdoissa määritettynä aikana. Jos haluat suorittaa skriptin välittömästi riippumatta siitä, mitä, sinun tulee käyttää "start"-komentoa:

launchctl start local.restart

Tämä komento ottaa työn tunnisteen ja toimii vain, jos työ on jo ladattu launchctl:iin.

Kärki: ryhdy Macin tehokäyttäjäksi käynnistämällä suosikkisovelluksesi nopeasti käyttämällä Raycastia tai Alfredia.

Usein Kysytyt Kysymykset

Kuinka voin tarkistaa, onko launchd käynnistänyt komentosarjan?

Voit käyttää terminaalissa komentoa launchctl list. Tämä näyttää kaikki ladatut työt. Voit etsiä tietyn skriptin tai työn käyttämällä grep-komentoa, esim. launchctl list | grep your_script_name.

Entä jos launchd käyttää liikaa järjestelmäresursseja?

Jos käynnistäminen kuluttaa liikaa resursseja, se johtuu yleensä virheellisestä skriptistä tai työstä. Tarkista äskettäin lisäämäsi komentosarjat ja pura ne komennolla launchctl unload /path/to/job.plist.

Mitä eroa cronilla ja launchdilla on?

Sekä cron että launchd ovat aikataulupalveluita, mutta ne toimivat eri tavalla. cron on vanhempi Unix-pohjainen työn ajoitus, joka suorittaa työt crontab-tiedostossa määritettyinä aikoina tai aikavälein. launchd on Applen uudempi järjestelmä macOS:lle, joka voi aloittaa työt useiden laukaisimien – ei vain ajan – perusteella.

Voinko käyttää muita komentosarjakieliä kuin bashia launchdilla?

launchd voi suorittaa minkä tahansa komentosarjan, joka voidaan suorittaa päätteestä. Tämä sisältää Pythonilla, Perlillä, Rubylla ja muilla kielillä kirjoitetut skriptit.

Indeksi
  1. Mikä Launchd on?
  2. Daemonit ja agentit
  3. Skriptien kirjoittaminen
  4. Työ kuvaukset
  5. Ladataan töitä launchctl:iin
  6. Usein Kysytyt Kysymykset
    1. Kuinka voin tarkistaa, onko launchd käynnistänyt komentosarjan?
    2. Entä jos launchd käyttää liikaa järjestelmäresursseja?
    3. Mitä eroa cronilla ja launchdilla on?
    4. Voinko käyttää muita komentosarjakieliä kuin bashia launchdilla?

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Go up