2010-11-02 22 views
5

Trên OSX bằng cách sử dụng launchctl để bắt đầu và dừng dịch vụ có vẻ tuyệt vời, tuy nhiên tôi không thấy kiểm tra giá trị trả lại để đảm bảo nó thực sự bắt đầu. giá trị trả về luôn dường như trở lại như zero ngay cả khi dịch vụ thất bại trong việc bắt đầuOSX: Cách kiểm tra giá trị trả về của lệnh launchctl

tập tin plist này chứa một lỗi và do đó sẽ không bắt đầu Mưa phùn như mong đợi

% launchctl start /Library/LaunchDaemons/org.drizzlebad.plist 

% echo $? 

0 

Bất kỳ lời đề nghị khác hơn là kiểm tra sự tồn tại của tệp pid cho dịch vụ này?

Trả lời

8

Bạn phải làm điều gì đó sai, vì launchctl chỉ trả về 0 nếu thành công:

$ launchctl start foobar 
launchctl start error: No such process 
$ echo $? 
1 

Ngoài ra, launchctl start mất các chức danh công việc (thường là một tên ngược DNS-style), không phải là con đường dẫn tới một plist . Đó là launchctl loadunload có đường dẫn plist.

Nếu bạn nhấn mạnh rằng nó không hoạt động cho bạn, bạn có thể thử chỉ cần grepping đầu ra của launchctl list cho tên công việc của bạn và, nếu cần, phân tích các trường.

+0

điều gì xảy ra nếu nó trả về tất cả đã được tải? là nó khác 0 thì giá trị trả về? –

1

khi bạn thực hiện launchctl list từ thiết bị đầu cuối, bạn sẽ thấy - trong cột thứ hai ... có danh sách chủ yếu là 0 và ... nếu chương trình của bạn thoát không chính xác, nó sẽ hiển thị lối ra mã trong cột thứ hai .... thường là -1 hoặc đôi khi a -251 hoặc bất kỳ trường hợp nào có thể là ... và hãy nhớ ... chỉ vì mục launchd của bạn có thể đã bị lỗi ... launchctl có thể vẫn đang cố gắng hết sức để "làm cho nó hoạt động" - cứ sau 10 giây ..... vì vậy đừng để quá trình bẻ khóa nán lại mãi mãi, vì nó chắc chắn tác động đến hiệu suất ..

dỡ bỏ nó bằng a -w .... và đường dẫn đầy đủ đến plist, hoặc ít nhất là dừng (và tùy ý loại bỏ nó) bằng mã định danh gói. -w sẽ tạo một mục nhập bí mật trong một plist trong thư mục/var/db/launchd của bạn, yêu cầu hạt nhân không nạp nó vào lần sau khi máy khởi động .. bất kể mục "XML" được kích hoạt có thể nói trong Plist .. .. vì vậy hãy cẩn thận rằng có nhiều hơn chỉ là cờ đó lúc chơi để xem liệu mục đó có được phục hồi trong lần tiếp theo bạn khởi động hay không ...

nếu bạn muốn bạn có thể sao lưu ghi đè đó.plist tệp sâu trong thư mục tat var và bắt đầu lại nếu nó đã trở nên quá phức tạp với tải và dỡ hàng theo thời gian ... có những cách khác để làm điều đó, nhưng tôi sẽ tắt ngay bây giờ .. trước khi tôi tình cờ hướng dẫn bạn làm thế nào để hoàn toàn vòi máy tính của bạn ...

Các vấn đề liên quan