0 votos

¿Por qué no se inicia mi LaunchDaemon?

Estoy intentando escribir mi primer LaunchDaemon: Creo que es bastante simple y cumple con todos los requisitos, pero no se ejecuta.

El archivo está en /Library/LaunchDaemons/com.noah.supertest.plist

Idealmente, debería estar funcionando ls y escribiendo la salida en ~/test.txt . Pero nunca se escribe nada en el archivo.

He reiniciado la máquina pensando que eso podría servir, pero nada.

<?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.noah.supertest</string>

  <key>ProgramArguments</key>
  <array>
    <string>ls</string>
    <string>></string>
    <string>~/test.txt</string>
  </array>

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

  <key>StartInterval</key>
  <integer>10</integer>

  <key>RunAtLoad</key>
  <true/>

</dict>
</plist>

Los permisos están establecidos como Root:wheel

2voto

klanomath Puntos 19587

Has cometido varios errores:

  • Es es funcionando siempre que hayas iniciado el plist correctamente con launchctl - pero es defectuoso
  • No has definido un directorio de trabajo para ls
  • Te falta un stdout adecuado
  • Te falta un archivo de error estándar (entonces suele ser fácil detectar lo que está mal en tu agente
  • Ponerlo en LaunchAgents en lugar de LaunchDaemons: ls es no daemon

Aquí hay un plist que funciona:

<?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>EnableGlobbing</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>com.noah.supertest</string>
    <key>ProgramArguments</key>
    <array>
        <string>ls</string>
        <string>-laO</string>
        <string>/private/tmp</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/com.noah.supertest.stderr</string>
    <key>StandardOutPath</key>
    <string>/Users/user_name/test.txt</string>
    <key>StartInterval</key>
    <integer>10</integer>
</dict>
</plist>

Primero hay que crear el archivo ~/test.txt antes de ejecutar el agente de lanzamiento.

A continuación, inicie el agente de lanzamiento con sudo launchctl [subcommand [arguments ...]] y comprueba el resultado:

...
drwxrwxrwt  8 root      wheel  -       272 Jan 23 12:23 .
drwxr-xr-x@ 6 root      wheel  hidden  204 Apr  9  2015 ..
-rw-r--r--@ 1 username  wheel  -      6148 Jan 23 12:21 .DS_Store
drwx------  3 root      wheel  -       102 Jan 23 12:07 KSOutOfProcessFetcher.0.sAglCyxY5lzPoNgfmEvv-ZqGl-w=
drwx------  3 username  wheel  -       102 Jan 23 12:05 com.apple.launchd.XFA6PYyYos
drwx------  3 username  wheel  -       102 Jan 23 12:05 com.apple.launchd.pHTdYNvPM9
-rw-r--r--  1 username  wheel  -      1867 Jan 23 12:21 com.noah.supertest.stderr
-rw-r--r--  1 username  wheel  -         0 Jan 23 12:16 com.soma-zone.LaunchControl.dumpstate
total 24
drwxrwxrwt  8 root      wheel  -       272 Jan 23 12:23 .
drwxr-xr-x@ 6 root      wheel  hidden  204 Apr  9  2015 ..
-rw-r--r--@ 1 username  wheel  -      6148 Jan 23 12:21 .DS_Store
drwx------  3 root      wheel  -       102 Jan 23 12:07 KSOutOfProcessFetcher.0.sAglCyxY5lzPoNgfmEvv-ZqGl-w=
drwx------  3 username  wheel  -       102 Jan 23 12:05 com.apple.launchd.XFA6PYyYos
drwx------  3 username  wheel  -       102 Jan 23 12:05 com.apple.launchd.pHTdYNvPM9
-rw-r--r--  1 username  wheel  -      1867 Jan 23 12:21 com.noah.supertest.stderr
-rw-r--r--  1 username  wheel  -         0 Jan 23 12:16 com.soma-zone.LaunchControl.dumpstate
total 24
drwxrwxrwt  8 root      wheel  -       272 Jan 23 12:23 .
drwxr-xr-x@ 6 root      wheel  hidden  204 Apr  9  2015 ..
-rw-r--r--@ 1 username  wheel  -      6148 Jan 23 12:21 .DS_Store
drwx------  3 root      wheel  -       102 Jan 23 12:07 KSOutOfProcessFetcher.0.sAglCyxY5lzPoNgfmEvv-ZqGl-w=
drwx------  3 username  wheel  -       102 Jan 23 12:05 com.apple.launchd.XFA6PYyYos
drwx------  3 username  wheel  -       102 Jan 23 12:05 com.apple.launchd.pHTdYNvPM9
-rw-r--r--  1 username  wheel  -      1867 Jan 23 12:21 com.noah.supertest.stderr
-rw-r--r--  1 username  wheel  -         0 Jan 23 12:16 com.soma-zone.LaunchControl.dumpstate
...

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