Mac OS X: tại lệnh không hoạt động


42

Tôi sẽ sắp xếp một công việc bằng cách sử dụng tại lệnh. Ở đây tôi đã thử lệnh sau:

$ at now + 1 minute
echo 'Test at command'
<EOD>

Tôi thấy công việc được lên lịch bằng cách sử dụng tại -l. Tuy nhiên, tôi thấy không có tiếng vang.

Tôi đoán rằng tôi có thể cần thêm người dùng vào tập tin at.allow. Tôi không thể tìm thấy at.allow trong máy Mac (Báo tuyết). Không chắc chắn những gì tôi cần làm để kiểm tra điều này tại lệnh?


Tôi đã cố đọc thông tin từ người đàn ông tại. Nó đã đề cập rằng "Nếu tệp _PERM_PATH / at.allow tồn tại, chỉ những tên người dùng được đề cập trong đó mới được phép sử dụng tại ... Nếu ... at.allow không tồn tại, _PERM_PATH / at.deny được chọn, .." Tôi tôi không chắc chắn _PERM_PATH là gì.

Trong trường hợp Apple OSX Leopard, PERM_PATH cho "at" là / usr / lib / cron.
Richard Hoskins

Đối với Mac OS X Lion, đó là/var/at
Stefan Schmidt

Câu trả lời:


40

Để kích hoạt atrundaemon cần thiết , như đã man atrunnói, thực thi:

launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

là root (ví dụ thông qua sudo). Khi bạn đã thực hiện điều đó, /var/at/sẽ là thư mục chính (mặc dù cách đơn giản nhất là sử dụng atnhư root - ví dụ: một lần nữa, bởi sudo! -).


Tôi biết rằng bạn cần phải root để kích hoạt trình nền, nhưng bạn không cần phải root để chạy các lệnh "at". (Trừ khi các lệnh đó yêu cầu root.)
Richard Hoskins

1
kích hoạt này hoặc không tồn tại khởi động lại?
Eric O Lebigot

Theo trang đàn ông thì có, nhưng tôi chưa thử.
Stefan Schmidt

1
nếu /var/at/at.denytrống, bạn không cần phải root để xếp hàng tại các công việc, nếu không bạn có thể thêm tên người dùng của mình vào /var/at/at.allow.
Stefan Schmidt

Tôi nên đọc các trang nam trước ... Cảm ơn!
polym 3/03/2015

13

Trong Snow Leopard, bạn cần phải:

  1. Chỉnh sửa /System/Library/LaunchDaemons/com.apple.atrun.plist, thay đổi nút con bị vô hiệu hóa từ true-> false.

  2. Dỡ bỏ dòng điện /System/Library/LaunchDaemons/com.apple.atrun.plistvới:

    sudo launchctl unload -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    

    Sau đó tải phiên bản đã chỉnh sửa

    sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    
  3. Kiểm tra xem nó hoạt động với:

    echo blah | at now+1
    
  4. Trong trường hợp tiếng vang không thành công vì một lý do khác, ít nhất bạn sẽ có thể thấy hàng đợi được xóa bằng:

    atq
    

1
Đây là người duy nhất làm việc cho tôi trên OSX 10.10 Yosemite.
Colin Dean

5

Tôi đã thử điều này trên OS X Lion và nó dường như hoạt động.

Đầu tiên kích hoạt atrundeamon:

launchctl load -w
/System/Library/LaunchDaemons/com.apple.atrun.plist

Sau đó thêm [tên người dùng của bạn] vào /var/at/at.allow.

Khi thực hiện, bạn sẽ nhận được đầu ra tại /var/mail/[your username]

Tôi thấy rằng các mục được xếp hàng với batchmột vài phút để thực sự được thực thi.


2

Những người khác đã trả lời về được vô hiệu hóa trên Mac OS X, và tôi không biết về điều đó, nhưng có một vấn đề: Nơi nào bạn mong đợi của bạn vang lệnh in thông điệp của mình? Trên các hệ thống Unix khác mà tôi đã sử dụng, nó không in trong cùng một cửa sổ shell mà bạn đã đưa ra lệnh at . Hãy nhớ rằng khi công việc được chạy, bạn có thể thậm chí không được đăng nhập nữa.

Thay vào đó, hãy thử viết một cái gì đó vào một tệp và xem liệu tệp đó có xuất hiện đúng lúc không.


Trang man nói rằng đầu ra sẽ được gửi đến bạn.
Stefan Schmidt

@Stefan: Có, và nó hoạt động tốt trong những năm 1980, khi thư được xử lý cục bộ trên cùng một máy, nhưng kinh nghiệm của tôi (với các loại Unix khác so với Mac OS X) là ngày nay bạn không nên nhận bất kỳ thư nào.
Thomas Padron-McCarthy

0

Bản cài đặt OS X (10,4) của tôi cho biết man at:

CHÚ THÍCH
     tại, batch, atq, atrm đều bị tắt theo mặc định trên Mac OS X.

Bạn đã kích hoạt atruntheo các hướng dẫn ở đó?


Tôi đã cố gắng tìm nơi bị tấn công trong máy Mac của mình. Từ web, một tùy chọn khác là thêm người dùng vào at.allow. Tôi không thể tìm thấy tập tin này (at.allow).
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.