Mac OS X: команда не працює


42

Я збираюся запланувати роботу за допомогою команди. Тут я спробував таку команду:

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

Я бачив, як робота запланована за допомогою -l. Однак я не побачив відлуння.

Я думаю, що мені може знадобитися додати користувача до файлу at.allow. Я не можу знайти at.allow у своєму Mac (Snow Leopard). Не впевнений, що мені потрібно зробити, щоб перевірити це за командою?


Я спробував прочитати інформацію від людини в. Він зазначав, що "Якщо файл _PERM_PATH / at.allow існує, лише ім'я користувачів, згадані в ньому, дозволяється використовувати в ... Якщо ... at.allow не існує, _PERM_PATH / at.deny перевіряється, .." I я не впевнений, що таке _PERM_PATH.

У випадку Apple OSX Leopard, PERM_PATH для "at" становить / usr / lib / cron.
Річард Хоскінс

Для Mac OS X Lion це/var/at
Стефан Шмідт

Відповіді:


40

Щоб увімкнути необхідний atrunдемон, як man atrunкаже, виконайте:

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

як root (наприклад, через sudo). Після того, як ви це зробите, /var/at/буде ключовим каталогом (хоча найпростіший спосіб - використовувати atяк root - наприклад, ще раз sudo! -).


Я знаю, що вам потрібно мати root, щоб активувати демон atrun, але для запуску команд "at" вам не потрібно мати root. (Якщо тільки для цих команд не потрібен корінь.)
Річард Хоскінс,

1
це активація або atrun переживає перезавантаження?
Ерік О Лебігот

Відповідно до сторінки чоловіка так, але я цього не пробував.
Штефан Шмідт

1
якщо /var/at/at.denyвін порожній, вам не потрібно мати root для черги на робочих місцях, інакше ви можете додати своє ім'я користувача /var/at/at.allow.
Штефан Шмідт

Я повинен прочитати сторінки чоловіка першими ... Дякую!
полім

13

У Snow Leopard вам потрібно:

  1. Редагування /System/Library/LaunchDaemons/com.apple.atrun.plist, зміна відключеного дочірнього вузла з true-> false.

  2. Вивантажте струм за /System/Library/LaunchDaemons/com.apple.atrun.plistдопомогою:

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

    Потім завантажте відредаговану версію

    sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
    
  3. Перевірте, чи працює він із:

    echo blah | at now+1
    
  4. Якщо відлуння не вдалося з іншої причини, ви повинні мати можливість принаймні побачити, як черга видаляється за допомогою:

    atq
    

1
Це єдиний, хто працював для мене на OSX 10.10 Yosemite.
Колін Дін

5

Я спробував це на OS X Lion і, здавалося, спрацює.

Спочатку ввімкніть atrunдіамон:

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

Потім додайте [своє ім’я користувача] до /var/at/at.allow.

Після виконання ви отримаєте вихід на /var/mail/[your username]

Я вважаю, що елементи в черзі batchпотребують декількох хвилин, щоб їх реально виконати.


2

Інші відповіли про в відключеному на Mac OS X, і я не знаю про це, але є ще одна проблема: де ви очікуєте , що ваше відлуння команди надрукувати своє повідомлення? В інших системах Unix, якими я користувався, він не друкується у тому самому вікні оболонки, де ви дали команду at . Пам'ятайте , що , коли на роботі запущений, ви не могли навіть увійти в систему більше.

Спробуйте написати замість цього щось у файл, і подивіться, чи з’являється цей файл у потрібний час.


На сторінці "man" зазначено, що результат буде надісланий вам поштою.
Штефан Шмідт

@Stefan: Так, і це спрацювало добре в 1980-х, коли пошту обробляли локально на тій же машині, але мій досвід (з іншими типами Unix, ніж Mac OS X) полягає в тому, що сьогодні не варто сподіватися на отримання жодної пошти.
Томас Падрон-Маккарті

0

Моя установка OS X (10.4) говорить про man at:

ПРИМІТКА
     at, batch, atq, atrm у Mac OS X за замовчуванням відключені.

Ви ввімкнули atrunзгідно з інструкціями там?


Я спробував знайти, де знаходиться в моєму Mac. З Інтернету ще один варіант - додати користувача до at.allow. Я не зміг знайти цього файлу (at.allow).
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.