2011-11-18 42 views
6

Trong Windows, bạn có thể tạo một ứng dụng có thể được cài đặt như một dịch vụ. Loại ứng dụng này được gọi là Dịch vụ Windows. Điều gì sẽ tương đương với các dịch vụ trên Mac OS X? Chúng được triển khai như thế nào và bắt đầu từ đâu để tìm hiểu về nó?Cách tạo dịch vụ Windows cho Mac OS X?

Tôi muốn tạo dịch vụ để tự động thực hiện tác vụ và bắt đầu và dừng tác vụ theo yêu cầu.

+0

Máy Mac tại một thời điểm đang chạy hạt nhân bsd đã sửa đổi. Họ có một công cụ cron giống như bạn có thể sử dụng? http: // benr75.com/pages/using_crontab_mac_os_x_unix_linux – Chris

+2

Bạn thực sự có thể sử dụng 'cron' nhưng việc sử dụng nó không được dùng để ủng hộ' launchd'. –

+0

ok, tôi đã đọc launchd và có vẻ là giải pháp đúng. thx – willyMon

Trả lời

9

Bạn cần phải trở thành bạn bè với launchd. Bạn cần phải tạo launchd file cấu hình được đặt trong một trong năm địa điểm:

  • ~/Library/LaunchAgents: đại lý mỗi người dùng được cung cấp bởi người dùng.

  • /Library/LaunchAgents: Tác nhân người dùng do quản trị viên cung cấp.

  • /Library/LaunchDaemons: Daemon toàn hệ thống được cung cấp bởi quản trị viên .

  • /System/Library/LaunchAgents: mỗi người sử dụng đại lý cung cấp bởi Mac OS X.

  • /System/Library/LaunchDaemons: daemon hệ thống toàn được cung cấp bởi Mac OS X.

Một daemon là một dịch vụ toàn hệ thống trong đó có một ví dụ cho tất cả các khách hàng. An đại lý là một dịch vụ chạy trên cơ sở mỗi người dùng.

Configuration files đang ở trong hình thức của một property list.

Cú pháp là đơn giản nhưng thật dễ dàng để có được nó sai. Các Wikipedia article có một bản tóm tắt tốt về các tùy chọn nếu man page không theo ý thích của bạn.

Về cơ bản, những gì bạn làm là cài đặt công cụ dòng lệnh thực tế của bạn (dịch vụ của bạn) ở đâu đó và sau đó tạo một platinum cấu hình launchd và đặt nó ở một trong các vị trí trên. Bạn có thể định cấu hình plist để launchd chạy dịch vụ của bạn khi khởi chạy hoặc định kỳ hoặc để phản hồi các hành động khác nhau (chẳng hạn như nội dung của thư mục thay đổi).

Có bài viết chi tiết tốt here.

+0

Các mục trong/Thư viện (trái ngược với ~/Library của người dùng) sẽ chạy cho mọi người dùng đăng nhập, đúng không? –

+0

Vâng, đúng vậy. –

+0

Có cách nào để ứng dụng này chạy dưới dạng root khi khởi động bằng launchd không? –

4

Bạn nên xem launchd, bạn có thể thực hiện rất nhiều thứ tiện lợi với nó. Ví dụ, hơi nước đã thông báo cho ra rằng bất cứ khi nào hơi nước bị xóa, hãy chạy công cụ trợ giúp hơi nước. Công cụ trợ giúp này giúp bạn gỡ cài đặt hoàn toàn hơi nước khỏi hệ thống của bạn.

người khác bao gồm các cơ chế cập nhật tự động của google chrome trên OS X.

Một liên kết để giúp bạn bắt đầu: Devdaily launchd examples

+0

cảm ơn câu trả lời. – willyMon