3

Я хочу запустить Java-программу (серверную программу) при запуске компьютера. Я могу запустить его из командной строки отлично.

Я создал /Library/Server/startFS.sh . Файл является исполняемым пользователем root и содержит:

cd /Library/Server/FiloSync
/usr/bin/java -jar /Library/Server/FiloSync/filosync-server-latest.jar -p 7000 -s 7001

Я не могу включить в список мой launchd .plist , форматирование отключено.

Я могу запустить его нормально из командной строки: ./startFS.sh , но когда я ставлю create plist (через Lingon), ничего не происходит.

Теперь при запуске выводит на консоль несколько строк. Может ли это быть проблемой?

Я попытался добавить nohup и добавить & , но ни одна комбинация не работает.

1 ответ1

3

Сохраните список свойств как этот /Library/LaunchAgents/some.label.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>some.label</string>
  <key>ProgramArguments</key>
  <array>
    <string>java</string>
    <string>-jar</string>
    <string>/Library/Server/FiloSync/filosync-server-latest.jar</string>
    <string>-p</string>
    <string>7000</string>
    <string>-s</string>
    <string>7001</string>
  </array>
  <key>RunAtLoad</key>
  <true/> <!-- run the program at login -->
  <key>KeepAlive</key>
  <true/> <!-- run the program again if it terminates -->
  <key>WorkingDirectory</key>
  <string>/Library/Server/FiloSync</string>
</dict>
</plist>

Убедитесь, что файл принадлежит пользователю root. Если это не так, он может быть загружен без sudo, но он не загружается автоматически при входе в систему. Затем выйдите и снова войдите, чтобы проверить, была ли запущена программа.

Для получения дополнительной информации см. man launchd.plist , техническую заметку Daemons and Agents или http://osxnotes.net/launchd.html.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .