Khởi chạy một trình nền sau một trình nền khác trên Mac OS X


5

Làm thế nào một người sẽ tạo ra một sự phụ thuộc giữa hai trình nền khởi chạy trên hệ thống bắt đầu?

Tôi muốn khởi chạy sonar khi hệ thống khởi động nhưng nó yêu cầu máy chủ mysql đã sẵn sàng và chạy.

Tôi đã không tìm thấy một cách rõ ràng để xác định một phụ thuộc quá trình trong các bảng khởi chạy.

Và từ trang Wikipedia launchd, có một câu rất đáng khích lệ:

Phần khó nhất để quản lý trong quá trình khởi động là phụ thuộc.

Sonar daemon:

<?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>WorkingDirectory</key>
    <string>/usr/local/Sonar/sonarinstall</string>
    <key>Label</key>
    <string>org.sonarsource.sonar</string>
    <key>KeepAlive</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>bin/macosx-universal-64/sonar.sh</string>
        <string>start</string>
    </array>
    <key>UserName</key>
    <string>server1</string>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>  

Trình nền của MySQL:

<?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>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>homebrew.mxcl.mysql</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/opt/mysql/bin/mysqld_safe</string>
    <string>--bind-address=127.0.0.1</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/usr/local/var</string>
</dict>
</plist>

Câu trả lời:


1

Bạn có thể đạt được mục tiêu của mình bằng cách thay đổi KeepAlive -Bắt đầu của MySQL-plist của bạn.

Sau đây (về lý thuyết) nên cung cấp những gì bạn đang tìm kiếm:

<key>KeepAlive</key>
<dict>
    <key>OtherJobEnabled</key>
    <string>org.sonarsource.sonar</string>
</dict>

Điều đó sẽ dẫn đến việc MySQL được khởi động trước máy chủ sonar và duy trì sự sống miễn là máy chủ sonar chạy.

Để biết thêm thông tin, hãy xem các tài nguyên đó:

Nếu điều đó không hiệu quả, Apple sẽ yêu cầu bạn sử dụng InterProcessC truyền thông (IPC) để thiết lập của bạn hoạt động. Nhưng thành thật mà nói, đó là ngoài sự hiểu biết của tôi! Một số người khác có thể nhảy vào đó.


Cảm ơn, tôi sẽ thử giải pháp của bạn vào thứ hai. Tôi cũng hy vọng tìm thấy một tài sản chậm trễ trong tài liệu nhưng không có may mắn.
florian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.