Estoy tratando de ejecutar aerender
(Después de los Efectos' de la línea de comandos renderer) a través de la launchd
a renderizar un vídeo en el que un intervalo programado. El comando funciona bien en la Terminal. En launchd
- incluso cuando utilizo screen -d -m ...
- siempre sale temprano. Aquí está mi configuración.
Pase a la parte inferior de cosas que ya he probado.
plist para launchd
:
<?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.home.VideoGenerator</string>
<key>ProgramArguments</key>
<array>
<string>/Users/home/Developer/VideoGenerator/exec/render.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>StartInterval</key>
<integer>300</integer>
<key>StandardErrorPath</key>
<string>/var/log/com.home.VideoGenerator.err.log</string>
<key>StandardOutPath</key>
<string>/var/log/com.home.VideoGenerator.out.log</string>
</dict>
</plist>
render.sh
script:
#!/bin/bash
/Applications/Adobe\ After\ Effects\ CC\ 2018/aerender -project /Users/home/Developer/VideoGenerator/resource/video.aep -comp ExportMe -output /Users/home/Developer/VideoGenerator/output/video.mov -OMtemplate Output
Salida:
Aquí es lo normal de salida parece, cuando ejecuto ./render.sh
desde la línea de comandos:
aerender version 15.0.1x73
PROGRESS: Launching After Effects...
PROGRESS: ...After Effects successfully launched
PROGRESS: Adding specified comp to Render Queue
PROGRESS: 4/2/18 8:41:57 AM PDT: Starting composition ExportMe.
...
Este es truncada. También salidas ajustes de composición y render de progreso, siempre con éxito. Nada es útil para este propósito.
Aquí está el registro de salida cuando lo ejecuto desde launchd
:
aerender version 15.0.1x73
PROGRESS: Launching After Effects...
PROGRESS: ...After Effects successfully launched
Y eso es todo. (En realidad me estoy quedando esto en un contexto donde puedo registrar el código de salida y es siempre 0. Para este propósito he drásticamente simplificado el proyecto a lo que se ve aquí, y todavía no se ejecuta).
Cosas que he probado:
- Set
KeepAlive
atrue
en el plist- Esto sólo relanza el proceso después sale
- Agregar
/dev/null
comoStandardInPath
en el plist (como en este post)- Todavía sale temprano
- Agregar
-i
y-c
a principios deProgramArguments
(desde el mismo post como en el anterior)- Comando no se ejecuta
- Set
AbandonProcessGroup
atrue
en el plist- Todavía sale temprano
- Anexar
&
poner la tarea en segundo plano- Los silencios de salida
- Lanzar
aerender
conscreen -d -m ...
- Usando la opción-L de la bandera y la comprobación de la sesión, el resultado es el mismo; se detiene después de
aerender
lanza Después de Efectos y, a continuación, sale antes de la representación.
- Usando la opción-L de la bandera y la comprobación de la sesión, el resultado es el mismo; se detiene después de
Ejecución ps aux | grep aerender
muestra más de 20 procesos que se ejecutan (probablemente de todas las veces que me he ejecutado el script), la mayoría de ellos aerendercore
. Pero no de salida, no de vídeo.
¿Qué estoy haciendo mal?