1 votos

launchd UserName key no funciona

Así que estoy tratando de escribir un launchd archivo para ejecutar una secuencia de comandos en un Mac Mini como un usuario específico cuando no están conectados. Este es el archivo plist:

<?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.wintr.eodemail</string>
    <key>Program</key>
    <string>/Users/*myusername*/Desktop/testdaemon/testdaemon.sh</string>
    <key>StandardErrorPath</key>
    <string>/var/log/eod-email.log</string>
    <key>StandardOutPath</key>
    <string>/var/log/eod-email.log</string>
    <key>RunAtLoad</key>
    <true/>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Minute</key>
            <integer>20</integer>
        </dict>
    </array>
</dict>
</plist>

Tengo esta colocado en /Library/LaunchDaemons/ y funciona bien se ejecuta como el usuario root. Funciona exactamente cuando me dicen que cuando no hay nadie conectado, sin embargo al agregar el nombre de Usuario clave de repente deja de funcionar:

<?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.wintr.eodemail</string>
    <key>Program</key>
    <string>/Users/*myusername*/Desktop/testdaemon/testdaemon.sh</string>
    <key>StandardErrorPath</key>
    <string>/var/log/eod-email.log</string>
    <key>StandardOutPath</key>
    <string>/var/log/eod-email.log</string>
    <key>RunAtLoad</key>
    <true/>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Minute</key>
            <integer>20</integer>
        </dict>
    </array>
    <key>UserName</key>
    <string>*myusername*</string>
</dict>
</plist>

Cuando se me descarga y carga el archivo, a continuación, comprobar si se ha cargado correctamente con sudo launchctl list | grep wintr se muestra:

-       78      com.wintr.eodemail

Y no se ejecuta. ¿Qué estoy haciendo mal aquí?

0voto

Nick Welna Puntos 1

Como señaló fd0, mi usuario no puede escribir en el directorio /private/var/log , puesto que no era necesario los registros quité las siguientes líneas:

<key>StandardErrorPath</key>
<string>/var/log/eod-email.log</string>
<key>StandardOutPath</key>
<string>/var/log/eod-email.log</string>

Y comenzó a trabajar! Yo pude también han cambiado a un directorio de que mi usuario puede escribir a arreglar el problema.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X