Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

How to Schedule Tasks with launchd on macOS

In Unix-like operating systems, crontab is a utility used to schedule tasks to run at specified times. However, macOS, which is based on Unix, uses a different system for task scheduling called launchd. Understanding how to use launchd is crucial for automating tasks, managing system processes, and improving productivity on macOS.

launchd is a more modern and powerful tool compared to crontab, offering finer control over scheduled tasks and better integration with the macOS system. This article will guide you through creating and managing scheduled tasks using launchd on macOS.

Examples:

  1. Creating a Launch Agent:

    To schedule a task using launchd, you need to create a property list (plist) file that defines the job. This file should be placed in ~/Library/LaunchAgents for user-specific tasks or /Library/LaunchDaemons for system-wide tasks.

    Here's an example of a plist file that runs a script every day at 3 AM:

    <?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>com.example.dailyjob</string>
       <key>ProgramArguments</key>
       <array>
         <string>/path/to/your/script.sh</string>
       </array>
       <key>StartCalendarInterval</key>
       <dict>
         <key>Hour</key>
         <integer>3</integer>
         <key>Minute</key>
         <integer>0</integer>
       </dict>
       <key>RunAtLoad</key>
       <true/>
     </dict>
    </plist>

    Save this file as com.example.dailyjob.plist in ~/Library/LaunchAgents.

  2. Loading the Launch Agent:

    After creating the plist file, you need to load it into launchd using the launchctl command:

    launchctl load ~/Library/LaunchAgents/com.example.dailyjob.plist

    This command tells launchd to start managing the job defined in the plist file.

  3. Unloading the Launch Agent:

    If you need to stop the job, you can unload it using:

    launchctl unload ~/Library/LaunchAgents/com.example.dailyjob.plist
  4. Checking the Status of a Launch Agent:

    To check if your job is running, use:

    launchctl list | grep com.example.dailyjob

    This will display the status of the job if it is loaded.

  5. Editing the Script:

    Ensure your script (/path/to/your/script.sh) is executable. You can make it executable by running:

    chmod +x /path/to/your/script.sh

    Here is an example script that logs the date and time to a file:

    #!/bin/bash
    echo "Job ran at $(date)" >> ~/job.log

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.