Використання Launchd для програми Applescript


1

Я створив програму Applescript (так званий Print Release), який працює без проблеми (код нижче):

do shell script "rm -R /Users/<account>/release.zip; rm -R /Users/<account>/release; curl -L https://URL/to/webserver/release.zip -o /Users/<account>/release.zip; unzip -o /Users/<account>/release.zip -d /Users/<account>; rm -rf /Users/<account>/__MACOSX; /Users/<account>/release/pc-release-mac.command --config config.properties"

Зараз я намагаюся створити файл плістів (званий com.papercut.release.agent.plist), щоб я міг його запустити при завантаженні та автоматично перезапустити, якщо користувач закриє програму. Коли я завантажую файл 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.papercut.release.agent</string>
      <key>ProgramArguments</key>
      <array>
          <string>/Applications/Print Release.app/Contents/MacOS/Application Stub</string>
      </array>
      <key>RunAtLoad</key>
      <true/>
      <key>KeepAlive</key>
      <true/>

Я використовую наступний код, щоб спробувати завантажити файл plist за допомогою терміналу:

launchctl load com.papercut.release.agent.plist

Я також спробував:

launchctl load /Library/LaunchAgents/com.papercut.release.agent.plist

Було б чудово, якби я міг, щоб програма запускалася лише при завантаженні та залишалася в живих для 1 конкретного акаунта, а не для всіх облікових записів, але я не знаю, як це зробити.

Будь-яка допомога буде дуже вдячна.


Зберегти com.papercut.release.agent.plistв ~/Library/LaunchAgents. Потім cdу цей каталог і запустіть launchctl load com.papercut.release.agent.plistі подивіться, чи це працює.
CJK
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.