Verificer at en launchctl-kommando kører som root og specificer korrekt mappe i .plist-fil

Hvordan kan det verificeres, at en launchctl-kommando i en .plist-fil kører som root, og er der en bedre måde at specificere den mappe, hvor kommandoen skal køres?

Verificering af at en launchctl-kommando i en .plist-fil kører som root kan gøres ved at justere RunAtLoad og UserName i .plist-filen, og specifikation af den mappe, hvor kommandoen skal køres, kan gøres ved at bruge WorkingDirectory-nøglen.

Verificering af at en launchctl-kommando i en .plist-fil kører som root, og bedre måder at specificere den mappe, hvor kommandoen skal køres

For at sikre, at en launchctl-kommando i en .plist-fil kører som root, og for at specificere den mappe, hvor kommandoen skal køres, kan du følge disse trin:

Verificering af at kommandoen kører som root

  1. Åbn Terminal.
  2. Indtast følgende kommando for at se status for din launchd-tjeneste:
    sudo launchctl list | grep 
  3. Kontroller, at tjenesten er indlæst korrekt og kører som root. Hvis tjenesten ikke kører som root, kan du justere RunAtLoad og UserName i .plist-filen.

Eksempel på .plist-fil for at køre som root

<?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.myservice</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/your/command</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>root</string>
</dict>
</plist>

Specifikation af den mappe, hvor kommandoen skal køres

For at specificere den mappe, hvor kommandoen skal køres, kan du bruge WorkingDirectory-nøglen i .plist-filen:

Eksempel på .plist-fil med WorkingDirectory

<?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.myservice</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/your/command</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>root</string>
    <key>WorkingDirectory</key>
    <string>/path/to/working/directory</string>
</dict>
</plist>

Ved at følge disse trin og eksempler kan du sikre, at din launchctl-kommando kører som root og specificere den korrekte mappe, hvor kommandoen skal udføres.