1 votos

Lanzamiento de agente de la invocación de secuencia de comandos de python devuelve error de permiso de

Estoy tratando de utilizar el siguiente .plist a invocar un script de python.

<?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>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>com.apple.inMemTask14</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py</string>
        </array>
        <key>StartInterval</key>
        <integer>300</integer>  
    </dict>
</plist>

Por alguna razón, cuando ejecuto:

launchctl load -w /Users/open/Library/LaunchAgents/com.apple.inMemTask14.plist

Me sale el siguiente error en mi sistema.registro:

Mar 27 11:39:19 openZ-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.inMemTask14): This service is defined to be constantly running and is inherently inefficient.
Mar 27 11:39:19 openZ-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.inMemTask14[1335]): Could not find and/or execute program specified by service: 13: Permission denied: /Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py
Mar 27 11:39:19 openZ-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.inMemTask14[1335]): Service setup event to handle failure and will not launch until it fires.

Me han dado permiso de ejecución al script de python. Hay algo mal con mi .plist? Cómo puedo solucionar los errores mostrados en los registros?

1voto

klanomath Puntos 19587

Usted tiene un error y un menor de edad en su plist y probablemente una inconsistencia en el sistema de archivos:

Mantener un puesto de trabajo vivo no importa qué y a partir de la misma el trabajo cada 5 minutos es como estar obligado a quedarse en el cuarto de baño y de ir al baño cada cinco minutos debido a ... un ablutomania.

Por lo tanto, eliminar la parte:

    <key>KeepAlive</key>
    <true/>

Agregar el python de reciclaje en el programa de argumentos:

reemplazar:

<key>ProgramArguments</key>
<array>
    <string>/Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py</string>
</array>

con:

<key>ProgramArguments</key>
<array>
    <string>/usr/bin/python</string>
    <string>/Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py</string>
</array>

Si usted prefiere otro python bin (por ejemplo, algunos brew/python), el uso de este lugar.

Por último, asegúrese de que el usuario ha iniciado la sesión (es decir, el lanzamiento del agente) tiene al menos acceso de lectura /Users/open/Library/Containers/.heheOSX/MacOSHighSierra.py!


Con respecto a la última problema:

Yo uso el siguiente alias en mi .bash_profile para obtener todos los permisos/Acl de una ruta de acceso:

alias lspath='(IFS=/; set -f -- $PWD; for arg; do path="${path%/}/$arg"; paths+=("$path"); done; ls -dlaOe@ "${paths[@]}")'

Entrando lspath después de la cd de ing a una carpeta se revelan todos los permisos de/Acl:

$ cd /Users/user1/Library/Containers/.heheOSX
$ lspath
drwxr-xr-x  39 root   wheel  - 1394 27 Mär 17:44 /
drwxr-xr-x   7 root   admin  -  238  5 Aug  2014 /Users
drwxr-xr-x+ 60 user1  staff  - 2040 26 Mär 23:58 /Users/user1
 0: group:everyone deny delete
drwx------+ 72 user1  staff  - 2448 16 Mär 00:40 /Users/user1/Library
 0: group:everyone deny delete
drwx------  57 user1  staff  - 1938 27 Mär 20:26 /Users/user1/Library/Containers
drwxr-xr-x   2 user1  staff  -   68 27 Mär 20:26 /Users/user1/Library/Containers/.heheOSX

En este ejemplo, ningún otro usuario, excepto usuario1 (y root) será capaz de lanzar/cargar un *.py en /Usuarios/usuario1/Biblioteca/Contenedores/.heheOSX debido a que otros usuarios no pueden atravesar ni /Usuarios/usuario1/Biblioteca ni /Usuarios/usuario1/Biblioteca/Envases debido a su restrictiva drwx------ los permisos.

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