Saya mencoba lari aerender (Renderer baris perintah After Effects) via launchd untuk membuat video pada interval waktu. Perintah berfungsi dengan baik di Terminal. Di launchd - bahkan ketika saya gunakan screen -d -m ... - selalu keluar lebih awal. Ini pengaturan saya.
Lewati ke bawah untuk hal-hal yang sudah saya coba.
Plist untuk 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 naskah:
#!/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
Keluaran:
Berikut adalah apa yang terlihat seperti output normal, ketika saya menjalankan ./render.sh dari baris perintah:
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.
...
Ini terpotong. Ini juga menampilkan pengaturan komposisi dan membuat kemajuan, selalu berhasil. Tidak ada yang berguna untuk tujuan ini.
Inilah output yang dicatat ketika saya menjalankannya launchd:
aerender version 15.0.1x73
PROGRESS: Launching After Effects...
PROGRESS: ...After Effects successfully launched
Dan itu saja. (Pada kenyataannya saya menjalankan ini dalam konteks di mana saya dapat mencatat kode keluar dan selalu 0. Untuk tujuan ini saya secara drastis menyederhanakan proyek menjadi apa yang Anda lihat di sini, dan itu masih tidak berjalan).
Hal yang saya coba:
- Set
KeepAliveuntuktruedalam daftar- Ini baru meluncurkan kembali proses setelah keluar
- Menambahkan
/dev/nullsebagaiStandardInPathdalam daftar (sesuai posting ini )- Masih keluar lebih awal
- Menambahkan
-idan-cke awalProgramArguments(dari posting yang sama seperti di atas )- Perintah tidak berjalan
- Set
AbandonProcessGroupuntuktruedalam daftar- Masih keluar lebih awal
- Menambahkan
&untuk menempatkan tugas di latar belakang- Output keheningan
- Meluncurkan
aerenderdenganscreen -d -m ...- Menggunakan flag -L dan memeriksa log, hasilnya sama; berhenti setelah
aerendermeluncurkan After Effects dan kemudian keluar sebelum rendering.
- Menggunakan flag -L dan memeriksa log, hasilnya sama; berhenti setelah
Lari ps aux | grep aerender menunjukkan lebih dari 20 proses yang berjalan (mungkin dari semua waktu saya menjalankan skrip), kebanyakan dari mereka aerendercore. Tapi tidak ada output, tidak ada video.
Apa yang saya lakukan salah?

